Hạ tầng vẫn chạy nhưng Terraform không còn biết gì về nó: apply sẽ cố tạo lại mọi thứ và fail vì trùng tên. Khôi phục bằng cách import lại từng resource, rất tốn thời gian với hạ tầng lớn.
Đây là lý do bucket state phải bật versioning:
bash
aws s3api list-object-versions --bucket acme-tfstate \
--prefix prod/network/terraform.tfstate
aws s3api get-object --bucket acme-tfstate \
--key prod/network/terraform.tfstate --version-id <id> restored.tfstate
terraform state push restored.tfstateRestore mất vài phút, còn import tay có thể mất nhiều ngày.
Phòng ngừa nên có cùng lúc: versioning + MFA delete trên bucket, IAM chặn s3:DeleteObject cho người thường, và backup state định kỳ sang account khác.
Một biến thể khó thấy hơn: state còn nhưng bị ghi đè bởi một apply song song hoặc -migrate-state sai. Một phần hạ tầng biến mất khỏi state trong khi phần khác vẫn còn, và chỉ lộ ra khi plan đề xuất tạo lại thứ đang chạy.