/ultrareview hangs after 'Claude Code process started' — no review-bug events emitted, 30-min timeout
Repository: anthropics/claude-code
Component: /ultrareview (research preview)
Severity: blocks the feature on real-world repos; consumes free-run quota with no findings
Summary
/ultrareview <PR#> consistently fails on a moderately-sized monorepo (indigoae/bellatune, ~6.6 MB diff under review). The remote sandbox provisions and clones successfully, the review agent's process starts, but no <review-bug> events are ever emitted to the events stream. The session eventually hits the 30-minute timeout and surfaces as Remote review failed: remote session exceeded 30 minutes.
Two consecutive attempts on the same PR exhibited the identical failure shape, suggesting a deterministic bug rather than a transient infrastructure issue.
Reproduction
- PR under review: a 5-commit architectural refactor on a Python monorepo.
git diff origin/master..HEADis 6608 lines, 23 files. The repo itself is too large for the local-bundle path (the/ultrareviewconfirmation prompt rejects it with "Repo is too large. Push a PR and use/ultrareview <PR#>instead."). - Pushed to a draft branch, opened PR.
- Ran
/ultrareview <PR#>. Confirmed launch. - Track URL surfaces a session ID. Review runs in the cloud sandbox.
- ~30 minutes later: task-notification reports
Remote review failed: remote session exceeded 30 minutes.
Failure shape (verified via the events API)
Used ~/.claude/.credentials.json claudeAiOauth.accessToken against GET https://api.anthropic.com/v1/code/sessions/{session_id}/events with anthropic-version: 2023-06-01.
Both sessions show this event sequence (oldest first):
Allocating sandboxEnvironment runner startedInitializing environmentCloning repository indigoae/bellatuneCloning repository indigoae/bellatune (still in progress...)Cloning repository indigoae/bellatune(presumably finished)Finished processing sourcesNo setup script configuredParallel initialization completedClaude Code executor createdStarting Claude CodeClaude Code process started- (no further events for ~29 minutes)
- Session marked failed with timeout message
Event types present in the stream: env_manager_log, system, control_request, control_response. No tool_use, no agent_log, no <review-bug> envelopes — the review agent never produces observable activity.
Two reproductions
| # | Session ID | Setup duration | Time of "Claude Code process started" | Time of timeout | Total events |
|---|---|---|---|---|---|
| 1 | session_01F4t6gggkqB83NNnxpcWDDi | ~51s | 04:00:04 UTC | 04:30 UTC | 14 |
| 2 | session_01VrDtLfdyfNzPkufEYxVpLc | ~14 min | 05:32:52 UTC | ~06:02 UTC | 22 |
Both used the same PR (rebased between attempts to land a CI fix on master). Setup duration varied substantially; the post-startup silence was consistent.
What we tried in between
- Attempt 1 was on a stale base. We then rebased onto a fresh master that included a CI fix.
- Reduced any setup-script complexity. Both attempts ran without a configured setup script (confirmed by the
No setup script configuredevent). - Confirmed PR is structurally fine: mergeable, no draft, all CI green on the PR after the rebase.
Suggested investigation paths
- Subprocess silence inside the sandbox: the Claude Code process starts but produces no events. Is its stdout/stderr piped somewhere that's being throttled or not flushed? Are
tool_useevents serialized to the events stream synchronously, or buffered behind something that's hanging? - Diff size threshold: 6608 lines / 23 files is moderate. Is there a per-PR token budget or context-window pre-fill that's stalling the agent before it makes the first tool call?
- Repo size threshold: the repo is large enough that the local-bundle path was rejected. Is there a memory/disk constraint inside the sandbox that's choking the review agent during context build-up?
- Specific to this repo's structure: heavy use of
pipeline/CLAUDE.md,pipeline/CURRENT_STATUS.md, etc. Many MD files in the diff. Some agents discovery / context-loading step might be timing out without surfacing a failure.
Workaround
We built a local equivalent in 12 Opus sub-agents (6 specialist scanners + 6 cross-verifiers) using the Claude Code SDK. ~25 min wall-clock, paper-based code-tracing instead of sandbox reproduction. Found 2 confirmed P0 operator-visible bugs, 5 P0 test-coverage gaps, 6 P1s, 6 P2s, ~14 P3 nits. The bugs were real and we've fixed them.
This is not a substitute for /ultrareview's sandbox-reproduced verification (which is the higher-signal half of the feature), but it's a viable fallback when the cloud path is broken.
Impact on free-run quota
Two of three free runs (Pro plan, valid through 2026-05-05) were consumed by this bug with zero findings produced. A separate billing/credit request is being filed via the in-app support messenger.
Related
- Memory note from a prior session at
feedback_ultrareview_api_not_notification.md(in this account's~/.claude/projects/.../memory/) flags a different/ultrareviewreliability issue: task-notification under-delivers confirmed findings (3 of 7 observed on a separate PR in 2026-04-27). The events-API curl path is the workaround for that one.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗