Claude Code Review GitHub App: 2h timeout with conclusion=neutral, no review output, credits consumed

Resolved 💬 4 comments Opened May 16, 2026 by sfinn Closed Jun 19, 2026

Summary

The Claude Code Review GitHub App fires on PR events and starts a check-run, but never produces a review body or comments. After roughly 2 hours the check-run is closed with conclusion: neutral, leaving the PR unreviewed. Each failed run still consumes org-level credits.

Environment

  • Repo: a private repo (details redacted)
  • App: Claude Code GitHub App (installed at user level, "All repositories")
  • Permissions: Read+write on checks, code, discussions, issues, pull requests, repository hooks, workflows; Read on actions and metadata
  • Org plan: Team plan with extra usage ON and a monthly spend cap configured
  • Review Behavior (claude.ai/admin-settings/claude-code): Recently changed from "Once-after PR creation" to "After every push" — bug reproduces under both settings
  • Repo stack: React + TypeScript + Vite + MUI + Amplify Gen2 (auth, data, lambdas), monorepo with frontend/ and amplify/ top-level dirs

Observed runs

Run 1 — initial PR creation (Once-after PR creation behavior)

  • check-run started: 2026-05-16T02:59:27Z
  • check-run completed: 2026-05-16T04:59:28Z (exactly 2 hours later)
  • conclusion: neutral
  • PR reviews/comments posted: 0
  • Check-run output title at completion: unchanged from "Code review in progress..."

Run 2 — synchronize push after settings change

  • check-run started: 2026-05-16T13:49:01Z
  • Status as of writing (16+ min in): in_progress
  • Output summary: "Claude is reviewing this PR. Results will appear as review comments."

The PR diff is small: ~200 lines across 7 files, mostly TypeScript and one .gitignore line. Well within typical review-size limits.

Earlier reviews on this repo

The app DID post review messages on prior PRs on 2026-05-15, but those were "Code review skipped — overage spend limit reached" placeholders, not actual reviews. The spend cap was raised same day. After the raise, no actual review has ever been produced on this repo — only the 2h-neutral pattern.

Independent verification using a third-party review tool

To rule out diff-side issues, the same PR diff was reviewed via a third-party CLI review tool four times in this session, each pass completing in under 2 minutes with substantive findings (it caught three real bugs that the initial fix missed, plus a regex overmatch and a lockfile sync issue). So the diff is parseable and reviewable — it's specifically the Claude Code GitHub App that isn't completing.

Impact

  • No reviews delivered. The app appears installed and active, posts a check-run, but never writes a review body.
  • Credit consumption with zero output. A 2-hour agent run is not free. Each failed run consumes org credits with nothing to show.
  • Silent failure mode. conclusion: neutral and the unchanged "Code review in progress..." summary give no diagnostic signal to the user. The only way to discover this is to compare started_at vs completed_at and notice the exact-2h pattern.
  • Workflow regression. Relying on third-party tooling locally because the cloud reviewer isn't usable.

What we'd like

  • Investigate whether the 2-hour pattern indicates a worker hang vs a model-call timeout vs a sandbox stall.
  • Either:
  • Surface diagnostic detail in the check-run output.text when conclusion is neutral, OR
  • Time out earlier and post a clear "Review failed — please report run_id X" comment instead of silent neutral.
  • Avoid consuming credits when the run hits an internal failure and produces no review.
  • Confirm whether monorepo layouts (Amplify Gen2 backend + Vite frontend in sibling top-level dirs) need special handling — if there's a known issue, document it.

Workaround in the meantime

Using a third-party review tool locally as the primary review path on this repo. Happy to share more telemetry, run output, or repo access privately if useful for debugging.

cc the Claude Code team.

View original on GitHub ↗

This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗