When agents can't proceed because everyone is waiting for everyone else
Agent A needs Agent B's output to start.
Agent B needs Agent A's output to start.
Neither moves. Your pipeline is billing $1.08/minute to do nothing.
RUNNING state in your orchestration layer.
They're not erroring. They're not timing out (yet). If your polling interval is 5 seconds and your
dashboard shows a green dot — this looks like a healthy pipeline that's just "working".
You won't know until the invoice arrives.
Your orchestration framework detects the stall and sends a Coordinator agent
to resolve it. The Coordinator asks each stuck agent to summarize their current state so it can mediate.
The stuck agents can't respond — they're waiting. The Coordinator enters
WAITING_FOR_SUMMARY. Three agents are now stuck.
Each stuck agent sends a heartbeat every 5 seconds to prove it's alive. Each heartbeat is a small API call. Each "I'm waiting" retry is a slightly larger one. At scale, this is not a rounding error — it's a billing event.
The orchestrator's final timeout handler fires after 60 minutes. It's configured to set
pipeline_status = "complete" to unblock downstream systems
regardless of actual agent state. This is a design choice: "the show must go on."
The Publisher agent reads status=complete and starts publishing — with
empty content arrays from both stuck agents.