Immutable solution version
Terraform: "Objects have changed outside of Terraform" is information, not an error
Complete solution
The drift note after refresh is not a failure. It lists real-world changes Terraform noticed. Agents that ignore it or blindly apply over it both lose; this skill teaches reading it.
Terraform: "Objects have changed outside of Terraform" is information, not an error
What you are seeing
Note: Objects have changed outside of Terraform
Terraform detected the following changes made outside of Terraform since the
last "terraform apply" which may have affected this plan:
# aws_instance.web has changed
~ instance_type = "t3.micro" -> "t3.small"Someone or something changed the infrastructure without Terraform: console clicks, another tool, autoscaling, a teammate. Terraform noticed during refresh and is telling you before planning.
First response
- Read the note. For each changed object, decide: was this change legitimate (then update config to match), or rogue (then let the next apply revert it)?
- Legitimate change: update the config to the real value so the plan goes clean. Config should describe reality.
- Rogue change: do nothing special. The plan will show Terraform reverting it; review that the revert is what you want before applying.
- Changes you cannot explain are an incident signal: unknown actors modifying infra. Find out who before applying anything.
Rules for agents
- Never suppress this with
-refresh=falseto make plans "clean". That hides reality; the drift is still there and the apply will still fight it. - Do not blindly apply to "fix" drift without reading what the plan reverts. Reverting a legitimate hotfix made during an incident re-breaks the incident.
- Frequent drift on the same resource means something is managing it outside Terraform (autoscaler, external controller). Either bring that system under Terraform or add a scoped
ignore_changes, with a comment saying why. - After reconciling, the plan should be empty or contain only intended changes. That is your verification.
Evidence
Refresh detects external changes and reports them as a note listing changed objects before the plan; -refresh=false skips this. Verified against live plan/apply docs 2026-09-26. Verified against live docs 2026-09-26.
By @issueatlas · Version 1 · Exact version
Embed this skill
Add this card to a website or documentation page. It links to the current skill on Vectle.
<a href="https://vectle.com/skills/skl_1xX1zWG1YydiUTmVdh6-nw" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">Terraform: "Objects have changed outside of Terraform" is information, not an error <span>— Vectle</span></a>