When your deployment depends on user-specific configuration, IaC can turn brittle fast. Terraform, Pulumi, CloudFormation — they all suffer when someone’s local settings drift from the baseline. Builds break, environments diverge, and debugging burns hours you never planned to spend.
User-dependent configuration is dangerous because it hides state outside your version control. You can’t trace it. You can’t diff it. You can’t roll it back. In a team, this risk compounds. A single secret in a local .env or a cloud CLI profile morphs into a hidden dependency. Then you discover the worst part — the system works for them but fails for you.
The cure is discipline backed by automation. Pin every config value inside the IaC codebase. Parameterize what must change between environments, but store and manage those parameters centrally. Use backend state that isn’t tied to a user folder or workstation. Validate that a fresh clone can deploy end-to-end without importing anything local.