Skip to content

Pin anthropics/claude-code-action to v1.0.88 to work around upstream ENOENT/tsconfig regression#106

Merged
0xferit merged 3 commits into
mainfrom
copilot/fix-claude-code-action-error
Apr 20, 2026
Merged

Pin anthropics/claude-code-action to v1.0.88 to work around upstream ENOENT/tsconfig regression#106
0xferit merged 3 commits into
mainfrom
copilot/fix-claude-code-action-error

Conversation

Copilot AI commented Apr 20, 2026

Copy link
Copy Markdown

The Claude Code Review workflow fails on every PR. This PR addresses two stacked failure modes:

1. ENOENT / tsconfig.json regression in v1.0.89

Per upstream anthropics/claude-code-action#1187, #1205, and #1220, v1.0.89 introduced a regression where cpSync in restoreConfigFromBase crashes on symlinked sensitive paths and leaks an fd that surfaces as a secondary tsconfig.json "directory mismatch" error. Upstream recommends pinning to v1.0.88.

  • .github/workflows/claude-code-review.yml: replace anthropics/claude-code-action@v1 with the SHA for v1.0.88.
  • .github/workflows/claude.yml: same pin (same action, same bug).
  • Inline comment on both usages pointing at the upstream issues.
uses: anthropics/claude-code-action@1eddb334cfa79fdb21ecbe2180ca1a016e8e7d47 # v1.0.88

2. 401 on bot-authored PRs (surfaced after the pin)

With v1.0.88 in place, the ENOENT error is gone, but the job now fails at the next step for bot-authored PRs:

App token exchange failed: 401 Unauthorized - User does not have write access on this repository

claude-code-action exchanges the workflow's OIDC token for a GitHub App installation token via Anthropic's server; the exchange gates on the OIDC actor's repo permissions. The allowed_bots input exists to let specific bots through without repo write, but v1.0.88 has a client-side bug (#1133; fix PRs #1144 / #1213 unmerged) that crashes on actors without a [bot] suffix. Copilot's actor login is Copilot (no suffix), so allowed_bots can't help here.

As a targeted workaround, gate the claude-review job on an if: that skips for Copilot and dependabot[bot]. Skipped jobs report as success for branch-protection purposes.

if: >-
  github.event.pull_request.user.login != 'Copilot' &&
  github.event.pull_request.user.login != 'dependabot[bot]'

Follow-up

Unpin and remove the if: guard once the first upstream release containing the fix for #1133/#1144/#1213 ships. A tracking issue will be opened alongside this PR.

Copilot AI changed the title [WIP] Fix GitHub Actions job failure in claude-code-action Pin anthropics/claude-code-action to v1.0.88 to work around upstream ENOENT/tsconfig regression Apr 20, 2026
Copilot AI requested a review from 0xferit April 20, 2026 22:49
claude-code-action exchanges the workflow OIDC token for a GitHub App
installation token; the server-side exchange rejects actors without
repo write access (401). The allowed_bots input is the intended escape
hatch, but v1.0.88 has a client-side bug that crashes on actors without
a "[bot]" login suffix (Copilot's login is "Copilot"), before allowed_bots
is honored. Tracked in anthropics/claude-code-action#1133; fix PRs
#1144 and #1213 are unmerged as of the v1.0.88 tag.

Skipped jobs count as success for branch protection, so this removes
the red X on bot-authored PRs without compromising actual review for
human-authored PRs. Remove this guard once the pin is lifted and
allowed_bots starts working for non-"[bot]"-suffix actors.
@0xferit

0xferit commented Apr 20, 2026

Copy link
Copy Markdown
Owner

Tracking follow-up for re-enabling claude-review on bot-authored PRs: #107.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR stabilizes the repository’s Claude automation by pinning anthropics/claude-code-action to a known-good release (v1.0.88) to avoid an upstream regression, and adds a temporary job-level guard to prevent failures on bot-authored PRs.

Changes:

  • Pin anthropics/claude-code-action to commit 1eddb334cfa79fdb21ecbe2180ca1a016e8e7d47 (v1.0.88) in both Claude workflows, with inline context and upstream issue references.
  • Add a job-level if: condition in claude-code-review.yml to skip running on PRs authored by Copilot and dependabot[bot].

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
.github/workflows/claude.yml Pins anthropics/claude-code-action to v1.0.88 with inline rationale to avoid the v1.0.89 regression.
.github/workflows/claude-code-review.yml Adds a bot-author skip guard for the claude-review job and pins the action to v1.0.88 with upstream references.

@0xferit 0xferit merged commit 2061730 into main Apr 20, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

GitHub Actions job fails: ENOENT error in anthropics/claude-code-action@v1 (tsconfig.json symlink)

3 participants