Subagent final report can come back as a bare pointer with no body — result is unrecoverable
Description
When a subagent finishes, its final report is meant to be returned to the agent that spawned it. On more than one occasion the returned content was a bare pointer — text to the effect of "report delivered above" — with no report anywhere in the conversation.
The work was done and the tokens were spent; only the delivery failed. There is no way to fetch the result afterwards, so the only recovery is to re-run the whole subagent and pay for it twice.
Why this is worse than it sounds
The failure is silent and terminal:
- the spawning agent has no way to distinguish "the subagent produced nothing useful" from "the subagent produced a report that was dropped in transit"
- there is no retrieval path. The completed agent's output is not addressable after the fact
- the cost is already sunk. A long research subagent can burn a large amount of tokens before the delivery step, and all of it is lost
In one observed case a research subagent ran for roughly 12 minutes and ~190k tokens. Losing that to a delivery failure rather than to a bad result is a materially different kind of loss.
Expected
Two independent fixes, either of which would remove the class:
- Return the report body itself rather than a reference to it. The reference indirection is what breaks; the body cannot go missing if it is the payload.
- Failing that, make a completed subagent's output retrievable after the fact — by agent id, from the parent. That would at least turn a terminal loss into a recoverable one.
The second is valuable even if the first lands, because it also covers the case where a parent's context was compacted between the spawn and the read.
Environment
- Claude Code, macOS (Darwin 25.5.0)
- Observed with
general-purposesubagents spawned from an interactive session