ultrareview: two consecutive crashes on same PR ("Review crashed before producing findings")
Summary
\/ultrareview <PR#>\ crashed twice in a row on the same PR, consuming 2 of 3 free runs with no findings produced either time.
Reproduction
- Open a content-refresh PR with ~21 files changed (15 binary images, 6 YAML, 8 MDX, 4 modified YAML, 1 plan doc). Diff is ~84 KB of text plus ~880 KB of binary product images.
- Run \
/ultrareview <PR#>\ - Receive: \
Free ultrareview N of 3. Ultrareview launched for <repo>#<PR>...\with a session URL - Wait for task notification
- Receive: \
Review crashed before producing findings. See session logs for details.\ - Retry with the same PR number → same crash, second session URL, same error
Affected sessions:
- session_01Gbq93CQrYYqeJuDnEHHA78
- session_01PwifgB1WZJKH3uTWL6QxNo
Both crashed pre-findings (no JSON output, only the canned error string).
Expected
Either the review completes and returns findings (as it did on the same repo's prior PR earlier the same session), or the crash is recoverable / re-runnable without consuming a free run.
Actual
Free run consumed, no findings, no actionable session log surfaced to the user.
Impact
For users on the Free 3-of-3 quota: a single problematic PR can consume the entire free allowance with zero output. The user is then forced into paid runs (\$5-20 each) with no signal that the next run is more likely to succeed.
Falling back to the local \code-review\ skill works fine on the same diff, so the issue appears specific to ultrareview's remote pipeline rather than the diff content itself.
Suggested fix
- Don't consume a free run when the crash happens pre-findings
- Surface enough of the session log in the error message that users can self-diagnose (e.g., \"timed out reading diff\", \"OOM during candidate verification\", \"specific file rejected by parser\")
- Add a size hint up front (\"Your PR is N KB / M files; recommended max is X\") so users can split before launching
Environment
- Claude Code CLI (date: 2026-05-27)
- macOS Darwin 25.5.0
- PR target: a personal repo (not org-owned), squashable, ~21 files
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗