Skip to content

Commit

Permalink
Merge pull request #31111 from hashicorp/jbardin/unknown-error-paths
Browse files Browse the repository at this point in the history
add unknown paths to diags for debugging
  • Loading branch information
jbardin committed May 24, 2022
2 parents 284a38a + 4830983 commit 2ad3ac7
Showing 1 changed file with 19 additions and 3 deletions.
22 changes: 19 additions & 3 deletions internal/terraform/node_resource_abstract_instance.go
Expand Up @@ -2016,9 +2016,25 @@ func (n *NodeAbstractResourceInstance) apply(
}

if !configVal.IsWhollyKnown() {
diags = diags.Append(fmt.Errorf(
"configuration for %s still contains unknown values during apply (this is a bug in Terraform; please report it!)",
n.Addr,
// We don't have a pretty format function for a path, but since this is
// such a rare error, we can just drop the raw GoString values in here
// to make sure we have something to debug with.
var unknownPaths []string
cty.Transform(configVal, func(p cty.Path, v cty.Value) (cty.Value, error) {
if !v.IsKnown() {
unknownPaths = append(unknownPaths, fmt.Sprintf("%#v", p))
}
return v, nil
})

diags = diags.Append(tfdiags.Sourceless(
tfdiags.Error,
"Configuration contains unknown value",
fmt.Sprintf("configuration for %s still contains unknown values during apply (this is a bug in Terraform; please report it!)\n"+
"The following paths in the resource configuration are unknown:\n%s",
n.Addr,
strings.Join(unknownPaths, "\n"),
),
))
return nil, keyData, diags
}
Expand Down

0 comments on commit 2ad3ac7

Please sign in to comment.