diff --git a/internal/terraform/node_action_instance.go b/internal/terraform/node_action_instance.go index 01cfda87d7..2996c9d8bc 100644 --- a/internal/terraform/node_action_instance.go +++ b/internal/terraform/node_action_instance.go @@ -12,6 +12,7 @@ import ( "github.com/hashicorp/terraform/internal/lang/langrefs" "github.com/hashicorp/terraform/internal/providers" "github.com/hashicorp/terraform/internal/tfdiags" + "github.com/zclconf/go-cty/cty" ) // NodeActionDeclarationInstance represents an action in a particular module. @@ -78,11 +79,15 @@ func (n *NodeActionDeclarationInstance) Execute(ctx EvalContext, _ walkOperation allInsts := ctx.InstanceExpander() keyData := allInsts.GetActionInstanceRepetitionData(n.Addr) - configVal, _, configDiags := ctx.EvaluateBlock(n.Config.Config, schema.ConfigSchema.DeepCopy(), nil, keyData) + configVal := cty.NullVal(schema.ConfigSchema.ImpliedType()) + if n.Config.Config != nil { + var configDiags tfdiags.Diagnostics + configVal, _, configDiags = ctx.EvaluateBlock(n.Config.Config, schema.ConfigSchema.DeepCopy(), nil, keyData) - diags = diags.Append(configDiags) - if diags.HasErrors() { - return diags + diags = diags.Append(configDiags) + if diags.HasErrors() { + return diags + } } ctx.Actions().AddActionInstance(n.Addr, configVal, n.ResolvedProvider)