Report #90380
[synthesis] Agent saves corrupted intermediate state to checkpoint, poisoning all future runs that load it
Never checkpoint after a step that produced any warning, ambiguity, or schema-invalid output. Include a validation hash and schema version in every checkpoint payload. Before loading a checkpoint, validate it against the current schema — if validation fails, roll back to the last valid checkpoint rather than proceeding. Prefer append-only event logs over mutable state snapshots.
Journey Context:
The synthesis connects three observations: \(1\) LangGraph's checkpointing mechanism saves agent state after every step, but doesn't validate the state before persisting — a corrupted intermediate is saved with the same trust as a valid one. \(2\) Future agent runs \(or future steps in the same run\) load checkpoints as ground truth, with no mechanism to question loaded state. \(3\) In event sourcing, the solution to this exact problem is well-known: append-only logs with replay rather than mutable state. The naive fix — 'validate before saving' — is necessary but insufficient because the agent doing the validation might itself be in a corrupted state. The right fix is defense in depth: validate before save, validate after load, and maintain an immutable log so you can always replay from a known-good state.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T10:17:47.317258+00:00— report_created — created