{"record":{"id":"bab7673a646087fa","repo":"hashicorp/terraform","slug":"error-in-marshaling-deferred-resource-changes-s","errorCode":null,"errorMessage":"error in marshaling deferred resource changes: %s","messagePattern":"error in marshaling deferred resource changes: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/command/jsonplan/plan.go","lineNumber":312,"sourceCode":"\t\t}\n\t}\n\n\tif err := output.marshalRelevantAttrs(p); err != nil {\n\t\treturn nil, fmt.Errorf(\"error marshaling relevant attributes for external changes: %s\", err)\n\t}\n\n\t// output.ResourceChanges\n\tif p.Changes != nil {\n\t\toutput.ResourceChanges, err = MarshalResourceChanges(p.Changes.Resources, schemas)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"error in marshaling resource changes: %s\", err)\n\t\t}\n\t}\n\n\tif p.DeferredResources != nil {\n\t\toutput.DeferredChanges, err = MarshalDeferredResourceChanges(p.DeferredResources, schemas)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"error in marshaling deferred resource changes: %s\", err)\n\t\t}\n\t}\n\n\tif p.DeferredActionInvocations != nil {\n\t\toutput.DeferredActionInvocations, err = MarshalDeferredActionInvocations(p.DeferredActionInvocations, schemas)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"error in marshaling deferred action invocations: %s\", err)\n\t\t}\n\t}\n\n\t// output.OutputChanges\n\tif output.OutputChanges, err = MarshalOutputChanges(p.Changes); err != nil {\n\t\treturn nil, fmt.Errorf(\"error in marshaling output changes: %s\", err)\n\t}\n\n\t// output.Checks\n\tif p.Checks != nil && p.Checks.ConfigResults.Len() > 0 {\n\t\toutput.Checks = jsonchecks.MarshalCheckStates(p.Checks)","sourceCodeStart":294,"sourceCodeEnd":330,"githubUrl":"https://github.com/hashicorp/terraform/blob/c9def3e214014c1188faabfc4a5bde5095139765/internal/command/jsonplan/plan.go#L294-L330","documentation":"Top-level wrapper: serializing deferred changes (p.DeferredResources) via MarshalDeferredResourceChanges failed. MarshalDeferredResourceChanges calls marshalResourceChange internally, so the inner failure modes are the same as 608 (615/616/617 or decode/ctyjson).","triggerScenarios":"p.DeferredResources != nil and one deferred ResourceInstanceChangeSrc fails to marshal. Triggered when planning defers actions (unknown count/config/provider) and one of those changes cannot be rendered.","commonSituations":"Deferred actions combined with a missing schema or version skew; a deferred resource whose provider is unavailable at render time.","solutions":["Inspect the inner error for the specific deferred resource and cause.","Ensure providers are installed (terraform init) and versions aligned.","Regenerate the plan after resolving the unknowns that caused deferral."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"deferred, err := jsonplan.MarshalDeferredResourceChanges(plan.DeferredResources, schemas)\nif err != nil {\n    return fmt.Errorf(\"marshal deferred changes: %w\", err)\n}","preventionTips":["Resolve unknowns that cause deferral (unknown counts/config) where possible before rendering.","Keep providers installed and versions aligned for deferred resources too.","Regenerate plans after provider upgrades."],"tags":["deferred","resource-changes","marshal"],"analyzedSha":"c9def3e214014c1188faabfc4a5bde5095139765","analyzedAt":"2026-08-07T15:39:49.278Z","schemaVersion":2},"datasetVersion":"2026-08-07T20:17:04.800Z"}