Stop the retry loopThe durable history does not change, so the provider receives the same invalid message sequence again.
Why resume does not repair it.
Classify before replay.
The Harness has no durable start event.
Verify external state before retrying any side effect.
No result does not mean no effect.
Preserve the Session, inspect external state, and continue in a fresh Session with a reviewed summary.
Invariant gates.
- Every call closes once.
- Order stays stable.
- Original error survives.
- Unknown stays unknown.
- Resume is provider-valid.
- No blind side-effect replay.
Primary evidence.
Keep the complete recovery runbook.
The canonical guide distinguishes malformed JSON, missing results, crash tails, closed error turns, and side-effect uncertainty.
Read and star on GitHub