Skip to content

Report upstream: claude-code-action retries the OIDC exchange but not the actor permission check #157

Description

@twistedmelonman

Split out of #133 so it isn't lost when that issue closes. Not load-bearing — nothing here is gated on it, and #156 already mitigated the local impact.

The inconsistency

anthropics/claude-code-action retries its OIDC token exchange 3× but does not retry its actor permission check:

GET /repos/{owner}/{repo}/collaborators/{actor}/permission

A single 503 there kills the whole run. Observed on 2026-08-17:

Attempt 1 failed: GitHub API is temporarily unavailable while verifying repository access.
Attempt 2 of 3...
App token successfully obtained          ← the token exchange retried and recovered
Checking permissions for actor: smartwatermelon
GET /repos/.../collaborators/.../permission - 503
##[error]Failed to check permissions

Two calls to the same degraded API, seconds apart, with opposite retry policies. The one that retries recovers; the one that doesn't takes down the run.

Evidence

  • smartwatermelon/archive-resolver#25, run 31986353713 — failed twice with an identical signature ~2.5h apart, on an unrelated one-file shell change.
  • The endpoint was failing ~40% of probes (3 of 8) while the GitHub status page reported everything except Copilot operational.
  • The step exits in ~13s; a real review takes ~1m11s.

Ask

Apply the same retry policy to the permission check that already wraps the token exchange.

Local state

v3.2.1 (#156) retries the review once when a probe confirms the endpoint is failing, which takes outage-induced failures from ~40% to ~16%. That is a mitigation, not a fix — a sustained outage still fails both attempts, and every consumer pays two runs to discover it.

Action needed here: open the issue on anthropics/claude-code-action with the above. No code change in this repo.

Refs #133, #156

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions