[BUG] [ultrareview] Remote review returns empty findings ([]) on large-scope repositories

Resolved 💬 7 comments Opened Apr 17, 2026 by holrosky Closed May 31, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Summary

/ultrareview completes successfully (task-notification status: completed) but returns an empty findings array ([]) on a large-scope branch. The free credit is consumed despite no usable output being returned to the CLI.

Environment

  • Claude Code CLI (Opus 4.7, 1M context)
  • Platform: macOS (Darwin 25.1.0)
  • Shell: zsh
  • Project: Android multi-module Kotlin/Compose app

Reproduction

  1. On a branch with a very large diff against master:
  • 3318 files changed
  • +503,841 / -79,972 lines
  1. Run /ultrareview <prompt> from the CLI.
  2. CLI reports: Free ultrareview N of 3. Ultrareview launched for master (~5-10 min, runs in the cloud).
  3. Wait for completion notification.
  4. Observe: task-notification returns status: completed, but findings payload is literally [].

Affected Sessions

Both attempts returned empty findings and each consumed one free credit:

  • session_016ssmzwUQ8d87MLf9pMEHMB (1st attempt)
  • session_01NP6kyMuTcngES2Yi6qsmdE (2nd attempt, identical prompt)

Same branch, same scope, same prompt — both returned [].

Expected Behavior

One of:

  • Actual findings are returned, OR
  • The job fails with a clear error (e.g., "scope too large, reduce diff size"), AND
  • Free credits are NOT consumed on empty/failed runs.

Actual Behavior

  • Job marked completed
  • Findings: []
  • Free credit decremented (1 of 32 of 3)
  • No error message, no indication of why the review produced zero findings on a 500K+ line diff

Impact

  • 2 of 3 free credits silently consumed with no usable output
  • No way to distinguish "clean codebase" from "server silently skipped analysis" from the CLI response
  • User has no recourse to retry without burning the last credit

Request

  1. Investigate why ultrareview returns empty findings on large-scope diffs (is there an undocumented size limit?)
  2. Refund the 2 consumed free credits for the sessions above
  3. Either surface a clear error when the scope exceeds analyzable limits, or do not decrement the credit counter on empty-result runs

Additional Notes

I held off on using the 3rd free credit to avoid a third silent failure. Happy to provide additional logs or re-run with instrumentation if helpful.

What Should Happen?

When I run /ultrareview against a large branch, one of the following should occur:

  1. Successful analysis — the remote agent analyzes the diff and returns a non-empty findings array with actionable items (architecture issues, bugs, security concerns, etc.), matching the prompt I provided.
  1. Graceful failure with clear error — if the diff exceeds the analyzable scope (file count, line count, or token budget), the CLI should return an explicit error such as:
  • Error: scope exceeds ultrareview limits (max N files / M lines). Please narrow the scope via <flag> or target a smaller branch.
  • The task status should be failed, not completed.
  1. No credit consumption on empty/failed runs — if the remote agent produces zero findings due to a server-side issue (not a genuinely clean codebase), the free credit counter should NOT decrement. Currently 1 of 32 of 3 was deducted twice despite zero usable output.
  1. Distinguishable outcomes — the CLI response should let me tell apart:
  • "Codebase is genuinely clean, no findings" (valid empty result)
  • "Server silently skipped analysis" (should be an error, not empty success)
  • "Scope too large, analysis truncated" (should be a warning with partial findings)

Right now all three collapse into an indistinguishable status: completed, findings: [].

Error Messages/Logs

Free ultrareview 1 of 3.
Ultrareview launched for master (~5-10 min, runs in the cloud).
Track: https://claude.ai/code/session_016ssmzwUQ8d87MLf9pMEHMB
Scope: 3318 files changed, 503841 insertions(+), 79972 deletions(-)


### Completion notification (1st attempt)


<task-notification>
  <task-id>rlzbw5eh8</task-id>
  <task-type>remote_agent</task-type>
  <status>completed</status>
  <summary>Remote review completed</summary>
</task-notification>

The remote review produced the following findings:

[]


### CLI output (2nd attempt, same prompt)


Free ultrareview 2 of 3.
Ultrareview launched for master (~5-10 min, runs in the cloud).
Track: https://claude.ai/code/session_01NP6kyMuTcngES2Yi6qsmdE
Scope: 3318 files changed, 503841 insertions(+), 79972 deletions(-)


### Completion notification (2nd attempt)


<task-notification>
  <task-id>rm0rbsgah</task-id>
  <task-type>remote_agent</task-type>
  <status>completed</status>
  <summary>Remote review completed</summary>
</task-notification>

The remote review produced the following findings:

[]

### Observations

- No error messages of any kind in either run.
- No warnings about scope size, token limits, or truncation.
- Both runs completed in what appeared to be a normal duration (not instant, not timed out).
- Status reported as `completed` — not `failed`, `error`, or `partial`.
- The `findings` payload is a literal empty JSON array (`[]`) with no accompanying metadata, reason field, or diagnostic info.
- No stderr output, no client-side exception, no hook failures.
- The remote session URLs (linked above) may contain server-side logs that aren't surfaced to the CLI — please check those sessions for any upstream errors.

Steps to Reproduce

Preconditions

  • Claude Code CLI installed (tested on Opus 4.7, 1M context, macOS Darwin 25.1.0)
  • A git repository with a feature branch containing a very large diff vs. the main branch
  • Confirmed reproducing scope: 3318 files changed, +503,841 / -79,972 lines
  • At least 1 free /ultrareview credit remaining

Steps

  1. Open a Claude Code session in the repository root:

``bash
cd /path/to/repo
claude
``

  1. Confirm you are on the large-diff branch (not master/main):

``bash
git branch --show-current
git diff --stat master | tail -1
``
Expected: thousands of files / hundreds of thousands of lines changed.

  1. Invoke /ultrareview with any review prompt, e.g.:

``
/ultrareview Review the entire project and identify any issues that would
cause user complaints after a global release. Produce a detailed md report.
``

  1. Observe the CLI launch message:

``
Free ultrareview N of 3.
Ultrareview launched for master (~5-10 min, runs in the cloud).
Track: https://claude.ai/code/session_<ID>
Scope: 3318 files changed, 503841 insertions(+), 79972 deletions(-)
``
Note: the free credit counter decrements here.

  1. Wait ~5–10 minutes for the task-notification to arrive.
  1. Observe the completion payload:

```
<task-notification>
<task-id>...</task-id>
<task-type>remote_agent</task-type>
<status>completed</status>
<summary>Remote review completed</summary>
</task-notification>

The remote review produced the following findings:

[]
```

  1. Repeat steps 3–6 with the same prompt on the same branch to confirm the bug is deterministic.
  • In my case the 2nd run also returned [] and consumed another free credit (1 of 32 of 3).

Actual Result

  • Both runs report status: completed with an empty findings: [] array.
  • Both runs consume a free credit.
  • No error, warning, or diagnostic information is surfaced to the CLI.

Expected Result

Either non-empty findings, OR a clear error (status: failed with a message about scope limits), AND no credit consumption on empty/failed runs.

Claude Model

Opus

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

2.1.112

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

_No response_

View original on GitHub ↗

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