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.

01Call appended
02Scheduler fails
03Turn closes error
04Repair skips balanced tail

Classify before replay.

Not recordedTOOL_NOT_STARTED

The Harness has no durable start event.

Started, no resultTOOL_OUTCOME_UNKNOWN

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.

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