Timeouts and budgets

A workflow talks to the outside world, and the outside world can go quiet. So a run has several independent limiters: if one does not fire, the next stops a process that would otherwise hang forever, spending money as it goes.

Time

What is capped Default
A single node 600 seconds
The whole run From the plan: max_workflow_timeout_seconds (Free 120 s, Paid 900 s)
Waiting for a model A budget of silence: every received chunk resets it

The node ceiling is deliberately lower than the run ceiling: a stuck step should have a name. When the node ceiling fires, the error comes from a specific node and shows up in the history; when the run ceiling fires, the whole run dies without saying which step was to blame.

Tokens

An LLM node has a maximum answer length; the default is 8192 tokens. An explicit value always wins, including upwards: a long generation you asked for on purpose must not be silently clipped by a default. Zero means “no ceiling”.

Iterations and nesting

  • while_loop — a cap on body passes. Without it a mistake in the condition becomes an infinite loop.
  • Nesting depth — how many times a workflow may call a workflow (a composite, wf_tool, an agent used as a tool). It guards against a graph calling itself.
  • Agent rounds — how many times an agent may go back to the model within one run. Rounds are what is counted: forty tool calls in a single response are one round.

When an agent’s call budget runs out the turn is not cut off: the allowed tools execute, the rest get a polite refusal, and the next round is declared final — a turn always ends with an answer rather than silence.

The plan

Concurrency is capped too: how many of an owner’s runs may proceed at once, and how many nodes within one run. A run that hits the limit waits in the queue instead of failing — see plan limits.

What next

  • Run statuses — what a timed-out run looks like.
  • Errors — how to keep a failure from taking the graph down.