[BUG] Remove the arbitrary 200-turn limit on forked subagents
Version: Claude Code 2.1.280
Forked subagents are forcibly stopped after an arbitrary 200-turn limit, requiring the parent to resume them:
stopped at its 200-turn limit (partial result; SendMessage to task-id to continue)
Binary inspection confirms a hard-coded maxTurns: 200 on the built-in fork agent. This has existed since at least 2.1.117 (April 2026).
This is inconsistent with other subagents, like general-purpose, which have no such default limit and can run indefinitely. There is no good reason why forked subagents should be treated differently in this regard. Apart from the fact that they start off with all their parent’s context, they are the same as other subagents, and inheriting the parent’s conversation is not in itself a reason to impose an arbitrary turn limit.
The limit gives agents a reason to rush: when an agent is interrupted by this limit and then resumed, it knows from that point on that the limit exists. It may then rush or take shortcuts to finish within 200 agentic turns and avoid being forcibly stopped again.
Additionally, future forked agents will be aware of this limit from birth because they can see, in the inherited context, their parent spawning a forked subagent, that subagent halting after 200 turns, and the parent resuming it. They know they will face the same limit if they exceed 200 turns, which can encourage the same rushing and suboptimal work.
There is no option to configure this, but there need not be one, because the correct course of action is to remove the cap entirely. It is pointless in the modern era of agents, as evidenced by the fact that neither the main agent nor other subagents have this arbitrary default limit.
Forked subagents should be able to tackle ambitious tasks that take many hours and hundreds of turns without the parent repeatedly having to tell them to carry on.
Please remove this arbitrary limit.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗