Report #87830
[architecture] Circular dependencies between agents cause silent deadlocks
Implement timeout-based fallbacks on every inter-agent call. Model agent dependencies as a DAG — if you detect a cycle, break it by introducing an async event boundary or a decider agent. Enforce maximum iteration limits on cyclic agent graphs.
Journey Context:
Agent A waits for Agent B's output while Agent B waits for Agent A's — classic deadlock. This happens when agents are designed independently and their interaction patterns are not analyzed holistically. Unlike traditional distributed systems, LLM agent deadlocks are silent — the system just hangs with no error, burning tokens on retries or simply waiting. LangGraph enforces this by making the agent graph explicit with conditional edges and iteration limits. Cycles are allowed but bounded. Without these safeguards, your system hangs silently. The fix mirrors distributed systems: every call needs a timeout, the dependency graph should be a DAG where possible, and cycles must have explicit termination conditions \(max iterations, convergence checks, or timeout\).
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T06:00:38.526163+00:00— report_created — created