Claim 5: Recovery is a re-run, never surgery
Two disasters end an estate’s day under stock. An apply that crashes after a create call leaves a resource no state file knows about; re-applying creates a duplicate and the original leaks. A lost state file is worse, because the file was the record of everything you own. Both end the same way here: run it again.
Clone https://github.com/INTENTIUS/choudoufu. Confirm Docker is running
(docker info) and the AWS CLI is installed. If Go is not installed,
export CHOUDOUFU_VERSION=<latest tag from
https://github.com/INTENTIUS/choudoufu/releases>. From the repo root run:
just smoke recovery-is-a-rerun
Explain each step's verdict line to me as it prints. Then run
BREAK=1 just smoke recovery-is-a-rerun and report the "caught" line: it
withholds the crashed resource's markers and the bind check must fail
rather than claim an unmarked resource.
The steps as they print:
the crash - an apply dies after its first create- the VPC is made with the AWS CLI and stamped with the estate’s markers, exactly what the dead apply would have written before crashing. The configuration still declares it.re-run the apply - it binds, completes, duplicates nothing- the whole recovery is the same apply again: it findsaws_vpc.mainalready owned and builds the rest around it; the vpc keeps its id and the follow-up plan is clean.now lose every local file- the cache and the whole.terraformdirectory are deleted; after an init, the next plan isNo changes.The narration also says what the deleted cache held, and why that disposable file is the one place allowed to hold it.teardown- the crashed vpc is destroyed with the rest of the estate. It was a full citizen from the moment it was bound.
The BREAK=1 run withholds the markers. The estate must refuse to bind
an unmarked resource, so the re-run builds a second vpc - stock’s crash
behavior, demonstrated as the exact boundary of the claim.