[BUG] Subagent goes idle without its final report ever reaching the parent session
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?
I spawned an Explore subagent via the Agent tool with a prompt asking for a fixed-format verdict block as its final message. The agent ran for several minutes, then the parent session received only:
{"type":"idle_notification","from":"reviewer-1","idleReason":"available"}
No result payload, no final text — nothing but the idle notification. ListAgents showed the agent alive as a teammate the whole time.
I sent it a SendMessage asking it to return the block. It produced another idle notification and again no report.
I re-spawned a second Explore agent (different name, same task, prompt hardened with "your FINAL TEXT is the report; do not end your turn without emitting the verdict block"). Same outcome: ran ~7 minutes, then an idle notification and no report.
What Should Happen?
The subagent's final message is delivered to the parent as its result, per the Agent tool's contract ("the agent's final report").
Error Messages/Logs
Steps to Reproduce
Agentwithsubagent_type: "Explore"and aname, prompting for a structured report as final text.- Agent runs to completion.
- Parent receives
idle_notificationinstead of the agent's report.
Reproduced twice in the same session with two independently spawned agents. I did not test other subagent_type values, so I can't say whether it is specific to Explore.
Claude Model
Opus
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.247
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
This silently defeats any workflow whose control flow depends on a subagent's returned verdict. In my case it blocked a review gate whose own rule is that reviewer silence must never be read as approval — so the work stalled rather than proceeding on a false pass. A workflow with a less careful rule would read the silence as success.
Session run inside a claude --worktree git worktree.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗