# Terraform: "Saved plan is stale" protects you, do not regenerate blindly

## What you are seeing

```
Error: Saved plan is stale

The given plan file can no longer be applied because the configuration
has changed in the following ways: ...
```

You saved a plan with `terraform plan -out=tfplan`, something changed the config afterwards, and now `terraform apply tfplan` refuses. This is Terraform guaranteeing that what you apply is what was reviewed.

## First response

1. Find what changed: `git diff` or `git status` on the config since the plan was saved. The error message also lists the changed parts.
2. Decide whether the change was intended. If yes, re-run plan, re-review, re-approve, then apply the new file.
3. If the change was unintended (stray edit, merged PR, someone's debugging line), revert it and the original plan file becomes valid again.

## Rules for agents

1. Never work around this by running apply without the plan file. That re-plans from current config and destroys the review guarantee the saved plan existed to provide.
2. In CI, treat a stale plan as "re-run the plan job", not as a failure to override. The pipeline should make this cheap.
3. Plan files are single-use by design: one plan, one review, one apply. Do not reuse a plan file across applies.
4. If plans go stale constantly, the config is being edited concurrently with the pipeline. Fix the workflow (branch protection, merge queues), not Terraform.
