{"record":{"id":"5f0919250c9cd909","repo":"hashicorp/terraform","slug":"unsupported-action-trigger-type-t","errorCode":null,"errorMessage":"unsupported action trigger type: %T","messagePattern":"unsupported action trigger type: %T","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/command/jsonplan/action_invocations.go","lineNumber":150,"sourceCode":"\t\treturn ai, fmt.Errorf(\"failed to decode action %s: %w\", action.Addr, err)\n\t}\n\n\tswitch at := action.ActionTrigger.(type) {\n\tcase *plans.ResourceActionTrigger:\n\t\tai.LifecycleActionTrigger = &LifecycleActionTrigger{\n\t\t\tTriggeringResourceAddress: at.TriggeringResourceAddr.String(),\n\t\t\tActionTriggerEvent:        at.TriggerEvent().String(),\n\t\t\tActionTriggerBlockIndex:   at.ActionTriggerBlockIndex,\n\t\t\tActionsListIndex:          at.ActionsListIndex,\n\t\t\tOnFailure:                 at.ActionOnFailure.String(),\n\t\t}\n\tcase *plans.InvokeActionTrigger:\n\t\tai.InvokeActionTrigger = &InvokeActionTrigger{}\n\t\tif at.CallingResourceAddr != nil {\n\t\t\tai.InvokeActionTrigger.CallingResourceAddress = at.CallingResourceAddr.String()\n\t\t}\n\tdefault:\n\t\treturn ai, fmt.Errorf(\"unsupported action trigger type: %T\", at)\n\t}\n\n\tvar config []byte\n\tvar sensitive []byte\n\tvar unknown []byte\n\n\tif actionDec.ConfigValue != cty.NilVal {\n\t\tunmarkedValue, pvms := actionDec.ConfigValue.UnmarkDeepWithPaths()\n\t\tsensitivePaths, otherMarks := marks.PathsWithMark(pvms, marks.Sensitive)\n\t\tephemeralPaths, otherMarks := marks.PathsWithMark(otherMarks, marks.Ephemeral)\n\t\tif len(ephemeralPaths) > 0 {\n\t\t\treturn ai, fmt.Errorf(\"action %s has ephemeral config values, which are not supported in action invocations\", action.Addr)\n\t\t}\n\t\tif len(otherMarks) > 0 {\n\t\t\treturn ai, fmt.Errorf(\"action %s has config values with unsupported marks: %v\", action.Addr, otherMarks)\n\t\t}\n\n\t\tunknownValue := unknownAsBool(unmarkedValue)","sourceCodeStart":132,"sourceCodeEnd":168,"githubUrl":"https://github.com/hashicorp/terraform/blob/d32a084675427f5ac3f7d2868578ef8b2c1dc525/internal/command/jsonplan/action_invocations.go#L132-L168","documentation":"Default branch of the type switch over action.ActionTrigger: the concrete type is neither *plans.ResourceActionTrigger nor *plans.InvokeActionTrigger. This means the plan contains a trigger kind this Terraform version does not know how to render.","triggerScenarios":"Plan produced by a newer Terraform that added a new action trigger variant; custom/forked plans with non-standard trigger types; serialized plans deserialized into an unexpected concrete type.","commonSituations":"See trigger scenarios.","solutions":["Upgrade Terraform to a version that recognizes the trigger type shown by %T.","Regenerate the plan with the current Terraform version.","If developing a new trigger type, add a case for it to the type switch in MarshalActionInvocation."],"exampleFix":null,"handlingStrategy":"type-guard","validationCode":null,"typeGuard":"func knownActionTrigger(t plans.ActionTrigger) bool {\n    switch t.(type) {\n    case *plans.ResourceActionTrigger, *plans.InvokeActionTrigger:\n        return true\n    default:\n        return false\n    }\n}","tryCatchPattern":null,"preventionTips":["Do not render plans produced by a newer Terraform that may introduce new trigger types.","When adding a trigger type in a fork, extend the type switch in MarshalActionInvocation."],"tags":["go","terraform","plan","actions","type-switch","version-mismatch","jsonplan"],"backgroundTag":null,"analyzedSha":"d32a084675427f5ac3f7d2868578ef8b2c1dc525","analyzedAt":"2026-08-11T18:43:52.779Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}