[BUG] SendMessage tool never surfaces — cannot continue spawned agents across turns

Resolved 💬 2 comments Opened May 23, 2026 by rebeccasofiab-stack Closed Jun 24, 2026

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?

## Summary

SendMessage (referenced in the Agent tool's own description as the way to "continue a previously spawned agent") is never exposed to the model. It is missing from both the immediately-loaded toolset AND the deferred-tools registry, even after agents have been successfully spawned and completed in the same session.

This breaks the documented workflow for resuming agents, forcing users to spawn a fresh Agent and re-pass full context each time — defeating the purpose of persistent agent sessions.

## Environment

  • Claude Code version: 2.1.133
  • Platform: macOS (Darwin 25.3.0)
  • Model: claude-opus-4-7 (1M context)
  • Shell: zsh

Yet the Agent tool's own description states:
> To continue a previously spawned agent, use SendMessage with the agent's ID or name as the to field — that resumes it with full context. A new Agent call starts a fresh agent with no memory of prior runs, so the prompt must be self-contained.

So the harness instructs the model to use a tool it never exposes.

## Impact

  • Every "continue this agent" workflow is broken.
  • Forces re-spawning agents with manually-reconstructed context, increasing token cost and risking context loss.
  • Particularly painful for plugin authors building multi-turn agent workflows (e.g. cm-cowork-agents).

## Prior reports

I have filed this twice before; both were closed as stale without maintainer response. Filing fresh so the triage
clock resets. Happy to provide additional traces, transcripts, or a video repro on request.

What Should Happen?

After spawning an agent via the Agent tool, SendMessage should be available to continue that agent's session —
either loaded directly in the toolset or surfaced in the deferred-tools registry so it can be retrieved via
ToolSearch.

The Agent tool's own description instructs the model to use SendMessage to resume previously spawned agents ("use
SendMessage with the agent's ID or name as the to field"), so the tool must be reachable whenever there is a live or
recently-completed agent to address.

Concretely:

  • ToolSearch({ query: "SendMessage" }) should return its schema.
  • Or SendMessage should appear by name in the deferred-tools system-reminder list once an agent has been spawned.

Currently neither happens, making the documented "continue an agent" workflow impossible to execute.

Error Messages/Logs

## Evidence from current session                                                                                      
                                                                                                                      
  `ToolSearch` query for `SendMessage`:                                                                                 
  
  No matching deferred tools found

Steps to Reproduce

## Reproduction

  1. Start a fresh Claude Code session.
  2. Spawn an agent via the Agent tool, e.g.:

``
Agent({ subagent_type: "general-purpose", description: "test", prompt: "List 3 files in cwd." })
``

  1. Wait for the agent to complete.
  2. In a subsequent turn, attempt to find SendMessage:

``
ToolSearch({ query: "SendMessage", max_results: 5 })
``

  1. Expected: SendMessage schema returned (or already loaded in the tool list).
  2. Actual: No matching deferred tools found. The tool is absent from the deferred-tools system-reminder list as well.

Claude Model

Opus

Is this a regression?

Yes, this worked in a previous version

Last Working Version

_No response_

Claude Code Version

Claude Code version: 2.1.133

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

_No response_

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗