SendMessage resume of a subagent drops the model override passed at spawn
Open 💬 1 comment Opened Jul 10, 2026 by AnFeSDB
## Environment
- Claude Code 2.1.205 (Windows 11, desktop app entrypoint)
- Session model: claude-fable-5
Repro
- Spawn a subagent via the Agent tool with an explicit model override, e.g.
Agent(subagent_type: "general-purpose", model: "opus", prompt: ...). - The subagent's run ends (in our case it ended prematurely after a skill auto-invocation, see #76385, but any completed run reproduces this).
- Continue the agent via SendMessage to its agentId. The tool reports:
Agent "<id>" had no active task; resumed from transcript in the background with your message.
Observed (subagent JSONL transcript)
- First-run assistant messages:
"model": "claude-opus-4-8"(override respected). - All post-resume assistant messages:
"model": "claude-fable-5"(the session model). The spawn-timemodel: "opus"override is silently dropped.
Expected
Either the resume should preserve the model override passed at spawn, or SendMessage should accept a model parameter for the continuation. At minimum the behavior should be documented, since it silently changes cost and capability mid-task.
Impact
Orchestration patterns that deliberately route execution work to a cheaper/different model (session model plans and reviews, subagents execute) lose the override on any follow-up message; the cost difference is invisible unless one inspects the transcript.
Workaround
Do not resume a failed execution agent via SendMessage; spawn a fresh agent with the explicit model instead.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗