Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

GRIDLOCK — Agent Failure Series #18

Series Type Status

What happens when your multi-agent pipeline deadlocks on circular dependencies — and the rescue agent joins the deadlock?

What It Is

An interactive single-file HTML simulator demonstrating the GRIDLOCK failure mode in multi-agent AI systems. Watch in real time as circular dependencies freeze a pipeline, recovery attempts make things worse, timeouts burn tokens with $0 work done, and false completion signals fire anyway.

4 live panels. Every failure mode runs as an animated, interactive demo.

Why It Exists

Multi-agent orchestration frameworks (LangGraph, CrewAI, AutoGen) have no built-in cycle detection. When Agent A waits for Agent B and Agent B waits for Agent A, the system silently freezes. Spawning a coordinator to resolve the deadlock typically gets captured by the same dependency graph. The timeout handler eventually fires, marks the pipeline status="complete", and the downstream publisher receives empty arrays.

5 confirmed production incidents documented (2026). This pattern is underreported because logs look normal — both agents show "WAITING" status, not "FAILED".

Whats Inside

index.html          — self-contained simulator (no dependencies, no build step)

Open it in a browser. No install, no server, no API keys.

The 4 Failure Modes

Panel Name What It Shows
1 Chicken-Egg Lock Basic A↔B deadlock with normal-looking logs
2 Rescue Trap Coordinator agent captured by the same dependency graph
3 Timeout Token Burn Live cost counter — tokens consumed, work done: 0%
4 False Completion Pipeline marked complete, blank page published, success notification sent

The Fix

from graphlib import TopologicalSorter, CycleError

def validate_pipeline(agents: dict[str, list[str]]) -> None:
    graph = {agent: set(deps) for agent, deps in agents.items()}
    try:
        list(TopologicalSorter(graph).static_order())
    except CycleError as e:
        raise ValueError(f"Pipeline has circular dependency: {e}") from e

Run topological sort before the first API call. O(V+E). Catches cycles before any tokens burn.

Live Demo

→ rlasaf12.github.io/gridlock/

Series

# Name Failure Mode
15 RaceCondition Concurrent writes corrupt shared state
16 StaleMind Agent acts on cached context after state change
17 GhostApproval HITL gate bypassed by timeout handler
18 GRIDLOCK Circular dependency deadlock + rescue trap

Built by harelasaf.com — AI Operator documenting what actually breaks in production.

About

GRIDLOCK — Agent Failure Series #18: What happens when multi-agent pipelines deadlock on circular dependencies

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages