Terraform v1.15.6 - JSON Plan and Console Panic Fixes

   |   3 minute read   |   Using 603 words

The HashiCorp team released Terraform v1.15.6 on June 10, 2026, delivering several critical bug fixes for operators managing infrastructure at scale. This patch update focuses on improving the reliability of state management blocks and fixing stability issues in the interactive console.

The full release notes and downloads are on the GitHub release page.

State management and JSON plan output

One of the most significant fixes in this release involves the removed block introduced in recent versions of Terraform. This block allows operators to remove resources from the state without actually destroying the underlying infrastructure. It is a powerful tool for refactoring or moving resources between different state files.

However, a bug was identified where resources marked for removal were incorrectly appearing in the planned_values section of the JSON output generated during a plan. For teams that use automated tooling or CI pipelines to parse plan files and verify changes, this was a major point of confusion. The JSON output would suggest that a resource still has planned values even though it is being detached from the state. This version ensures that resources in a removed block are correctly handled in the JSON schema, preventing false positives in security scanners or custom validation scripts that rely on the plan file structure.

Console stability and expression evaluation

The terraform console command is a staple for engineers who need to test interpolation logic or inspect the current state of variables without running a full plan. In version v1.15.6, the maintainers addressed a panic that occurred when the console evaluated expressions involving deprecated values.

Panics in the CLI are always a priority because they break the developer feedback loop and can leave the terminal in an inconsistent state. This specific crash happened when the evaluation engine encountered values that were marked for future removal or replacement. By hardening the expression evaluator, the team has made the interactive environment safer for testing complex configurations.

Exit code corrections and variable errors

Consistent exit codes are vital for automation. Many shell scripts and CI runners check the return value of a command to decide whether to proceed or halt a deployment. This release fixes an issue where the plan, query, and refresh commands were not returning the expected exit codes when encountering variable related errors.

Before this fix, certain misconfigurations in variables might result in a generic error output but an exit code that did not accurately reflect the failure state. By aligning these exit codes, Terraform makes it easier for operators to build resilient automation around the core CLI commands. When a variable error occurs, the process will now exit with a code that clearly signals a configuration failure to the calling environment.

Module installation edge cases

Managing modules is a core part of the Terraform workflow, and v1.15.6 addresses two specific edge cases during the installation process. These issues involved null values and sensitive or ephemeral module sources.

In complex configurations where module sources might be dynamically generated or passed through sensitive variables, the installation logic could previously fail or behave unexpectedly. This was particularly problematic for users who utilize the ephemeral nodes or sensitive input variables to define where their infrastructure code is located. The fixes in this release ensure that terraform init and module installation steps remain robust even when dealing with these more advanced and secure configuration patterns.

Where to get it

You can download the latest version of the CLI from the official channels. As always, it is recommended to test patch releases in a staging environment before updating your production pipelines.



denis256 at denis256.dev