[BUG] Subagents cannot invoke the Agent tool in 2.1.107 despite declaring it in frontmatter (nested subagent spawning broken)
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?
A custom subagent defined with Agent in its frontmatter tools: list cannot actually call the Agent tool at
runtime. When it tries, it reports that Agent is not in its available toolset and exits without spawning a
nested subagent. This blocks orchestrator-style patterns where one subagent coordinates others.
Actual: The subagent reports Agent as unavailable and exits. Reproduced in multiple fresh terminal sessions.
Version: Claude Code 2.1.107
What Should Happen?
Expected: The subagent invokes Agent and spawns a nested subagent, as its frontmatter declares.
Error Messages/Logs
1. Parent/child toolset discrepancy (smoking gun).
The main thread's subagent registry lists the orchestrator with Agent granted. The running subagent at the same moment reports Agent missing. Concrete strings to paste:
▎ The main-thread subagent registry advertises the orchestrator with (Tools: Read, Grep, Glob, Bash, Edit,
▎ Write, Agent).
▎
▎ The running subagent reports its actual tools as Read, Grep, Glob, Bash, Edit, Write — Agent is stripped
▎ between registry and runtime despite the frontmatter declaration.
That parent-says-granted / child-says-missing gap is the clearest signal something is filtering the toolset
on delivery, not at declaration.
2. Release-timing correlation.
▎ Claude Code 2.1.107 was published 2026-04-14 05:18 UTC. The first reproduction of this issue occurred
▎ 2026-04-14 14:04 CEST (12:04 UTC) — roughly 7 hours after the release. Four consecutive reproductions
▎ followed over the next 60 minutes across two terminal sessions. No Claude Code updates or config changes
▎ happened between reproductions.
3. Ruled-out causes (saves the triager time).
▎ The following were checked and ruled out:
▎ - ~/.claude/settings.json is minimal and contains no tool restrictions.
▎ - Project settings.local.json permissions.allow explicitly includes "Agent".
▎ - The child subagent's frontmatter tools: list explicitly includes Agent.
▎ - A clean git working tree and a fresh terminal session both reproduce the issue.
▎ - claude --version confirms 2.1.107 is running in all failing sessions.
Steps to Reproduce
Reproduction:
- Create .claude/agents/orchestrator.md:
---
name: orchestrator
tools: Read, Grep, Glob, Bash, Edit, Write, Agent
---
Use the Agent tool to spawn a subagent.
- From the main thread, invoke it with subagent_type: "orchestrator".
- The subagent replies that Agent is not in its toolset and refuses to spawn anything.
Claude Model
Opus
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
Claude Code 2.1.107
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
Likely regression: The same pattern worked in an earlier Claude Code version without even listing Agent in
the frontmatter. Explicitly adding it in 2.1.107 does not restore the behavior, suggesting Agent is being
stripped from subagent toolsets regardless of the frontmatter declaration.
Ask: Either honor Agent in subagent frontmatter (restoring prior behavior), or document the restriction so
users can redesign affected patterns.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗