Observability

Termination reason

The explicit code recorded when a run ends, stating whether it completed normally or which specific limit, routing error, or failure stopped it.

Every run ends with a termination reason — an explicit code stating how it finished. Runs never degrade silently; if something stopped a run, the reason names it.

The codes

ReasonMeaning
completedFinished normally with a final answer
max_steps_exceededHit the overall step ceiling before answering
transfer_limit_exceededMore transfers attempted than the cap allows
delegation_limit_exceededMore successful delegations than the cap allows
delegation_failedA delegation could not be completed
route_forbiddenHandoff targeted an agent not in the caller's allowed list — or tried to transfer to a delegation-only cross-agent target
target_not_foundHandoff targeted a sub-agent that no longer exists in the design
content_filter_blockedContent-safety filtering rejected a message
remote_dispatch_failedA cross-agent call failed even after retrying
agent_cycle_detectedA chain of agent-to-agent calls looped back on itself
max_agent_hops_exceededA cross-agent chain went deeper than the hop limit
ambiguous_handoffRouting intent unresolvable even after self-correction retry
orchestration_failedAn unexpected internal error outside the specific cases above
execution_canceledCancelled by a client disconnect or an operator

Reading them as design feedback

Most non-completed reasons point at the routing graph rather than at the model:

  • transfer_limit_exceeded → usually an oscillating graph, or transfer-first authoring where delegation was appropriate
  • max_steps_exceeded → graph too complex for the budget, or a budget set too low
  • route_forbidden → an allowed-targets list that does not match the handoffs the instructions encourage
  • ambiguous_handoff → two sub-agents with overlapping responsibilities

Independent limits

Worth stating plainly: running out of any one limit ends the run, not just the overall step count. Transfers and delegations have separate caps, and cross-agent chains are additionally bounded by hop depth and cycle detection. They are not one shared budget.

In the Anter docs

Related terms

Last updated July 27, 2026