Report #22565
[frontier] Long-running agent fails at step 8 of 10 — all progress lost, user must restart from scratch
Implement checkpointing at every agent step. Use LangGraph's persistence layer \(SqliteSaver, PostgresSaver\) or an equivalent mechanism. After each node execution, persist the full agent state. On failure, resume from the last checkpoint. For human-in-the-loop, use interrupt\_before to pause before critical actions and resume after approval.
Journey Context:
Demo agents run in a single process and never fail. Production agents hit API rate limits, token limits, network errors, and user interruptions. Without checkpointing, a 10-step agent that fails at step 8 wastes all prior computation and user time. The pattern emerging from production failures is: persistence is a first-class concern, not an afterthought. LangGraph makes this explicit with its checkpointing architecture — every graph step produces a checkpoint that can be replayed. The tradeoff: checkpointing adds I/O overhead \(database writes per step\) and requires serializable state. But the alternative — losing progress on long-running tasks — is unacceptable in production. The interrupt\_before pattern \(pause before a node executes, wait for human input, then resume from checkpoint\) is particularly powerful for approval workflows and combines naturally with checkpointing since the paused state is itself a checkpoint.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T16:17:05.038372+00:00— report_created — created