Subagent (Bugbot) completes but result returns "connection was interrupted" — handoff fails in both sync and background modes

Where does the bug appear (feature/product)?

Bugbot / Security Review Agent

Describe the Bug

When launching a subagent (specifically the built-in bugbot subagent) via the Task tool, the
subagent runs to completion and writes a full transcript to disk, but the result never makes it
back to the parent agent. The parent instead receives a generic error:

“Bugbot could not complete the review because the connection was interrupted, or it was called
with the unsupported resume argument. Start a new Bugbot review (without resume) to try again.”
This is not the known long-running/2-hour reconnect-exhaustion case — the subagent finishes
in seconds on a tiny diff. The failure is in the result handoff, not a timeout.

Steps to Reproduce

  1. From a parent agent, launch a bugbot subagent (Task tool) on a small branch diff.
  2. Let it run (completes in seconds).
  3. Observe the parent receives the “connection was interrupted” error instead of the findings.

The parent receives a generic “connection was interrupted” error. However, the subagent’s
transcript on disk is complete and contains the final <answer> block, confirming the subagent
itself succeeded — only the return channel failed.

Expected Behavior

The parent agent receives the subagent’s final answer (the <answer> payload with any findings).

Operating System

MacOS

Version Information

Cursor 3.12.17

For AI issues: add Request ID with privacy disabled

Request ID: 978abd57-30f2-43e8-a74e-e306c6b8fa27

Additional Information

Additional findings

  • Reproduces consistently, not intermittently.
  • Reproduces in both run_in_background: false (synchronous) and run_in_background: true
    (completion-notification) modes — so it’s not specific to the blocking return path.
  • The transcript is always written to
    ~/.cursor/projects/<project>/agent-transcripts/<parent>/subagents/<agent-id>.jsonl, and its
    final assistant <answer> block holds the real result.

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hey, thanks for the detailed report, your diagnosis is basically correct. This is a bug on our side. The review really does finish on the model side, and the failure happens specifically in the return channel when sending the result back to the parent, not due to a timeout like you wrote. The transcript on disk is complete for the same reason.

This affects both the bugbot and security-review sub-agents, in both modes with run_in_background true or false. I’ve filed this internally using your steps and the Request ID. I can’t share an ETA for a fix yet, but I’ll post an update in this thread as soon as I have one.

Unfortunately, there isn’t a solid workaround right now. Restarting the review hits the same path. If you notice other scenarios where this triggers, like very large diffs or frequent repeats, please drop them here, it’ll help us narrow it down.