[BUG] SendMessage-resumed background subagent never appears in the background tasks UI
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?
When a background subagent is resumed via the SendMessage tool (the response reads "resumed from transcript in the background"), it never shows up in the client's background tasks tab. The tab stays empty even though the agent is actively running — editing files and eventually firing a completion notification. So there's no live indication that any background work is in progress.
This breaks visibility parity: an Agent-tool-spawned background agent is expected to be trackable in that tab, but a SendMessage-resumed one isn't, so I can't see it's running, tell whether it stalled, or confirm it's still alive until the completion notification arrives.
What Should Happen?
Expected
Resumed agent shows in the background tasks tab, same as an Agent-tool-spawned
background agent.
Actual
The agent's work runs correctly and a task-notification fires on completion,
but it never appears in the background tasks tab. The initially Agent-spawned
run also did not appear.
Error Messages/Logs
Steps to Reproduce
Steps to reproduce
- Spawn a subagent in the background via the Agent tool.
- After it completes, resume it several times via SendMessage({to: agentId}).
(Each returns "resumed from transcript in the background".)
- Open the client's "background tasks" tab while it runs.
Claude Model
Opus
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
2.1.179
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
Environment
- Claude Code: 2.1.179
- Node: v20.20.2
- OS: macOS 26.5.1 (25F80)
- Session type: Claude Agent SDK (not interactive CLI)
- Relevant flag: CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS (SendMessage worked in this session)
Notes / possible mechanism
- Persisted agent meta.json is structurally identical for tracked vs untracked
agents (agentType/description/toolUseId/spawnDepth) — no "tracked" flag.
- On SendMessage resume, meta.json keeps the ORIGINAL spawn toolUseId; the resume
itself is a separate tool_use. If the tab maps live work to the current Agent
tool_use, resumes would be missed.
- SendMessage may be gated as experimental — this could be incomplete UI
integration rather than a regression.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗