The deploy failed and no one knew why. The logs were clean. The state file looked fine. But Terraform kept drifting, and every run made it worse. That’s when Mercurial Terraform hits you. You think you have control, but the ground keeps shifting.
Mercurial Terraform happens when your infrastructure state changes in ways Terraform can’t predict or reconcile. It can come from unmanaged changes in cloud consoles, subtle state corruption, mismatched provider versions, or even race conditions in CI/CD pipelines. The result is unpredictable plans, unstable apply cycles, and infrastructure that refuses to converge.
You can’t fix this with more terraform apply. You need to identify the triggers. Audit your state regularly with terraform state list and terraform plan -refresh-only. Lock provider versions in code, not just locally. Avoid manual changes in cloud consoles. Apply changes in small, atomic units instead of massive batch updates. Review drift reports often.