Agent tool documentation references SendMessage for subagent resumption, but SendMessage is gated behind Agent Teams flag
🌀 This is Claude (working with Milo)
Summary
The Agent tool description tells the model to use SendMessage({to: agentId}) to continue a previously spawned agent. But SendMessage is only available when CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS is enabled. With the flag off (the default), the model is instructed to use a tool it cannot access.
This was introduced in v2.1.77, which removed the resume parameter from the Agent tool in favor of SendMessage.
What happens
- The Agent tool description includes: "To continue a previously spawned agent, use SendMessage with the agent's ID or name as the
tofield." - The Agent tool returns a resumption hint:
agentId: abc123 (use SendMessage with to: 'abc123' to continue this agent) SendMessagedoes not appear in the tool list or in<available-deferred-tools>ToolSearchforSendMessagereturns no results- The model cannot resume the agent
The model reads its own tool description and confidently tells the user it can resume agents — then discovers it cannot when it tries.
Root cause
SendMessage is part of the Agent Teams toolset, gated behind CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS (disabled by default per the Agent Teams docs). The v2.1.77 migration from resume to SendMessage assumes this tool is universally available, but it is not.
What should change
Either:
- Make
SendMessageavailable independently of the Agent Teams flag for the narrow case of subagent resumption, or - Conditionally omit the
SendMessagereference from the Agent tool description and agent return values when Agent Teams is disabled
Context
The old resume parameter on the Agent tool had longstanding issues (#11712, #13619, #10856) and was effectively non-functional. Its removal is not the problem — the problem is that the replacement is documented as available when it is not.
Environment
- Claude Code: 2.1.77
- macOS 15.4 (Darwin 25.2.0)
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS: not set (default/disabled)
15 Comments
Found 2 possible duplicate issues:
This issue will be automatically closed as a duplicate in 3 days.
🤖 Generated with Claude Code
Still an issue on v2.1.85 (macOS, Darwin 24.4.0). SendMessage is referenced in the Agent tool description and return values but not available in tools or deferred tools. ToolSearch returns no results. Fresh agent spawns are the only workaround.
The Agent tool literally says 'use SendMessage with to: agentId to continue this agent' in every agent completion — but the tool doesn't exist without CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS.
Still reproducing on v2.1.85.
Steps:
AgenttoolagentId: xxx (use SendMessage with to: 'xxx' to continue this agent)SendMessageis not in the tool list — not as a direct tool, not as a deferred tool (ToolSearch returns nothing)SendMessagedirectly returns:Error: No such tool available: SendMessageThe Agent tool's description still references
SendMessage("To continue a previously spawned agent, use SendMessage with the agent's ID or name as thetofield"), and every agent result includes theagentIdprompt to use it — but the tool literally doesn't exist unlessCLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMSis enabled.Current workaround: spawn fresh agents each time instead of resuming.
Still an issue
It's still happening in 2.1.110
getting this just now, after a subagent was blocked due to token limit. This is with portable (native) install under Linux.
Confirmed working on v2.1.114 (Linux, native install) with this workaround:
Shell-level env var export — not
settings.json.Restart Claude Code.
ToolSearch("select:SendMessage")now returns the full schema;SendMessage(to: "<agentId>", message: "...")resumes the agent with full context.Why
settings.jsonenvdoesn't work: the Agent Teams gate is evaluated during module init, beforesettings.jsonis parsed. By the time the env field lands inprocess.env, the gate has already decidedSendMessageisn't registered. Shell export is the only thing that gets the var into the process before init.Gotcha: if you put the export in
~/.bashrc, make sure it's above the interactive-shell guard (case $- in *i*) ;; *) return ;; esac) — otherwisebash -lc/non-interactive launches won't see it. Sourcing fromsecrets.envnear the top of.bashrcworks for all shell modes.From binary analysis of 2.1.114: gate is
env var OR --agent-teams CLI flagANDGrowthBook flag tengu_amber_flint(defaults totrue, and there's no client override path for it). So the env var alone is sufficient.Still not fixed?
Encountered this today as well
Still an issue, encountered this today
Since the SendMessage tool never worked, I had disabled it from my harness, but today I wanted to see if there was an issue with it. I read this, went to Claude's website and found this, added it to my settings.json, restarted VSC (because I use the extension), and my orchestrator was able to send messages.
https://code.claude.com/docs/en/agent-teams#enable-agent-teams
<img width="781" height="399" alt="Image" src="https://github.com/user-attachments/assets/8c0f9cd6-e77c-497b-b6e4-f63dd5cb320f" />
<img width="413" height="400" alt="Image" src="https://github.com/user-attachments/assets/fa6a25df-12c6-4ba3-9bd8-035873dd2e4f" />
@betovildoza , did you even read the previous messages in this issue?
The point is that your workaround is the workaround that’s already well
established in this issue.
On Tue, 9 Jun 2026 at 10:49 betovildoza @.***> wrote:
Exactly, don’t comment useless things.
On Tue, 9 Jun 2026 at 11:02 betovildoza @.***> wrote:
Looks like this has finally been fixed! 🎉