www.capterra.com
Terraform Reviews 2025. Verified Reviews, Pros & Cons | Capterra
Terraform's error messages are usually cryptic and hard to understand. Finally, when Terraform fails, it just drops the deployment and leaves the half-deployed resources as is. There is no built-in way to revert to a last good state. Supports a wide range of providers, such as cloud platforms and all sorts of server-based software such as Hashicorp Vault, Grafana, etc. ... Cryptic error messages The quality of the documentation varies a lot, but generally speaking it doesn't go into enough details Terraform sometimes fails for obscure reasons Terraform sometimes updates resources that have no changes No built-in ability to roll back to a previously working state if the deployment fails Terraform is no longer FOSS Weird configuration language Renaming resources usually leads to painful problems Some limitations prevent the efficient use of Terraform in a multi-environment setup (which is usually the case), which lead to the birth of Terragrunt to overcome those limitations. … 1. There was generally one example on each resources in terraform documentation which makes understanding a bit challenging. 2. There are very few developers with the terraform experience. 3. After writing the terraform scripts, the developers has to check the terraform plan properly before proceed the terraform apply command . There is a possibility that Developers run terraform apply command directly which would lead to deletion or modification of the resources and once resource is modified or deleted, there is no way to get the resources back. … Basically whenever your DevOps engineers are overseeing in excess of ten machines or when you need numerous groups not zeroed in on DevOps to assist with claiming the framework facilitating their code. Prominent sentiment is that Terraform isn't exceptionally secure, fight tried, and spilling mysteries happen effectively on mishap. Thus, Terraform is not so great when you need to store bunches of touchy mysteries that your organization is lawfully needed to watch in case it is the finish of you. … The actual language is somewhat surprising and this makes it difficult for new clients to get onboarded into the codebase. While it's improving with later deliveries, essential ideas like "map a variety of choices into a bunch of designs" or "apply this rationale in the event that a variable is indicated" are conceivable however superfluously unwieldy. … One of my main problems with Terraform is when I'm trying to delete things and I end up with dependencies blocking the deletion. Sometimes I need to manipulate state and am left with orphaned resources. When things don't work, it's tricky to troubleshoot. Really positive, we have the majority of our infrastructure represented as code which makes deployments and maintaining our infrastructure easier. … Looping strategies like for_each are rather complex to understand when you are new to terraform. It does not have a rollback feature & if something fails all the changes before that failed change would still be applied. Some conditional logics are unnecessarily cumbersome. Also overally analytics for users running plan & apply is missing, it's better for management purpose & debugging the plan which might have caused an infra issue.
Related Pain Points6件
Sensitive data exposure in state and plan artifacts
9Terraform stores real secret values (API tokens, database passwords) in plaintext state files and plan output despite showing (sensitive value) in the CLI. When plan files are uploaded as CI/CD artifacts, they become security liabilities if accessible to unauthorized parties.
Resource refactoring is destructive and risky
8Renaming or reorganizing resources in Terraform code causes them to be destroyed and recreated rather than updated, risking catastrophic downtime and data loss for stateful resources like databases. There is no native refactoring capability.
Accumulation of orphaned and unused Kubernetes resources
6Unused or outdated resources like Deployments, Services, ConfigMaps, and PersistentVolumeClaims accumulate over time since Kubernetes doesn't automatically remove resources. This consumes cluster resources, increases costs, and creates operational confusion.
Workspace-based multi-environment management requires excessive conditional logic
6Using Terraform workspaces to manage multiple environments (dev, staging, prod) requires heavy use of count parameters and conditional expressions, making code difficult to read and understand. Scaling across environments becomes increasingly complex as interconnections multiply.
HCL syntax is awkward and creates steep onboarding curve
5The Terraform configuration language (HCL) is unintuitive compared to standard programming languages. Concepts like conditional logic, looping with for_each, and mapping collections are unnecessarily cumbersome. Few developers have deep Terraform experience, slowing team onboarding.
Cryptic error messages and poor documentation
5Terraform error messages are often baffling, especially with complex modules or provider bugs. Documentation quality varies widely and lacks sufficient detail. Error context is insufficient for troubleshooting, making debugging slow and frustrating.