Skip to content

Release history

terraform releases

Terraform enables you to safely and predictably create, change, and improve infrastructure. It is a source-available tool that codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned.

All releases

12 shown

No immediate action
v1.15.5 Bug fix

Fix init crash

Monitor
v1.15.4 Mixed
RCE / SSRF

s390x builds + init fix

No immediate action
v1.15.3 Bug fix

Nested module migration fix

v1.15.2 Bug fix
Notable features
  • Added output values to plan component instance change description for stacks
Full changelog

1.15.2 (May 6, 2026)

ENHANCEMENTS:

  • stacks: add ouput values to plan component instance change description (#38360)

BUG FIXES:

  • Avoid printing warnings from 'terraform output -json' (#38530)
v1.15.1 Breaking risk

Fixed crash caused by invalid `action_trigger` nested block in `data` or `ephemeral` lifecycle blocks.

Full changelog

1.15.1 (May 1, 2026)

BUG FIXES:

  • Fixed crash when configuration has an invalid action_trigger nested block in data or ephemeral lifecycle blocks (#38402)

  • validate: Removed validation of attributes inside backend blocks due to incompatibility with workflows using the -backend-config flag. (#38466)

  • Fix non-const variable checks on init (#38470)

  • Avoid warnings in 'terraform output -raw' (#38487)

  • Ignore undeclared variable values from the cloud backend (#38490)

  • Fix panic for types modules with no expanded instances (#38491)

  • Fixed "unknown provider function" errors occurring during init (#38472)

  • init: Fixed a bug that impacted use of provider pre-releases during init (#38496)

v1.15.0 Breaking risk
Breaking changes
  • backend/s3: AWS_USE_FIPS_ENDPOINT and AWS_USE_DUALSTACK_ENDPOINT environment variables now only accept true or false values (previously any non-empty value was treated as true)
Notable features
  • Windows ARM64 build support
  • deprecated attribute on variable and output blocks
  • Variables and locals support in module source and version attributes
Full changelog

1.15.0 (April 29, 2026)

NEW FEATURES:

  • We now produce builds for Windows ARM64 (#32719)

  • You can set a deprecated attribute on variable and output blocks to indicate that they are deprecated. This will produce warnings when passing in a value for a deprecated variable or when referencing a deprecated output. (#38001)

  • backend/s3: Support authentication via aws login (#37976)

  • validate: The validate command now checks the backend block. This ensures the backend type exists, that all required attributes are present, and that the backend's own validation logic passes. (#38021)

  • convert function, which allows for precise inline type conversions (#38160)

  • Terraform now supports variables and locals in module source and version attributes (#38217)

ENHANCEMENTS:

  • config: output blocks now can have an explicit type constraints (#36411)

  • ssh-based provisioner (file + remote-exec): Re-enable support for PowerShell (#37794)

  • terraform init log timestamps include millisecond precision (#37818)

  • init: skip dependencies declared in development override. This allows you to use terraform init with developer overrides and install dependencies that are not declared in the override file. (#37884)

  • Terraform Test: Allow functions within mock blocks (#34672)

  • improve detection of deprecated resource attributes / blocks (#38077)

  • Deprecation messages providers set on resources / blocks / attributes are now part of the deprecation warning (#38135)

  • Include which attribute paths are marked as sensitive in list_start JSON logs (#38197)

  • Add input variable validation for Stacks (#38240)

  • When comparing a container value to null, only top level marks are now considered for the result. (#38270)

  • As part of supporting variables in module sources, most commands now accept variable values (#38276)

BUG FIXES:

  • testing: File-level error diagnostics are now included in JUnit XML skipped test elements, ensuring CI/CD pipelines can detect validation failures (#37801)

  • A refresh-only plan could result in a non-zero exit code with no changes (#37406)

  • cli: Fixed crash in terraform show -json when plan contains ephemeral resources with preconditions or postconditions (#37834)

  • cli: Fixed terraform init -json to properly format all backend configuration messages as JSON instead of plain text (#37911)

  • state show: The state show command will now explicitly fail and return code 1 when it fails to render the named resources state (#37933)

  • apply: Terraform will raise an explicit error if a plan file intended for one workspace is applied against another workspace (#37954)

  • lifecycle: replace_triggered_by now reports an error when given an invalid attribute reference that does not exist in the target resource (#36740)

  • backend: Fix nil pointer dereference crash during terraform init when the destination backend returns an error (#38027)

  • stacks: send progress events if the plan fails for better UI integration (#38039)

  • stacks: component instances should report no-op plan/apply. This solves a UI inconsistency with convergence destroy plans (#38049)

  • backend/http: Return conflicting lock info from HTTP backend instead of the lock that failed to be taken (#38144)

  • states: fixed a bug that caused Terraform to be unable to identify when two states had different output values. This may have caused issues in specific circumstances like backend migrations. (#38181)

  • cloud: terraform cloud and registry discovery network requests are now more resilient, making temporary network or service related errors less common (#38064)

  • Enable formatting of .tfquery.hcl files by terraform fmt (#38398)

  • Fix validate not returning JSON for some early diagnostics (#38400)

  • Fix Terraform Stacks plugin installation error (#38406)

NOTES:

  • command/init: Provider installation was refactored to enable future enhancements in the area. This results in different order of operations during init and 2 new log messages replacing one (initializing_provider_plugin_message). The change should not have any end-user impact aside from the init command output. (#38227)

UPGRADE NOTES:

  • backend/s3: The AWS_USE_FIPS_ENDPOINT and AWS_USE_DUALSTACK_ENDPOINT environment variables now only respect true or false values, aligning with the AWS SDK for Go. This replaces the previous behavior which treated any non-empty value as true. (#37601)

Previous Releases

For information on prior major and minor releases, refer to their changelogs:

v1.14.9 Bug fix

## 1.14.9 (April 20, 2026) BUG FIXES: * Fix Terraform Stacks plugin installation error

Full changelog

1.14.9 (April 20, 2026)

BUG FIXES:

  • Fix Terraform Stacks plugin installation error (#38406)
v1.14.6 Bug fix

Terraform test now returns error when provider configuration is invalid.

v1.14.5 Bug fix

Fixed terraform stacks validate failing to resolve relative paths for modules.

Beta — feedback welcome: [email protected]