{"record":{"id":"57823e8ef965d523","repo":"hashicorp/terraform","slug":"no-schema-found-for-s-in-provider-s-57823e","errorCode":null,"errorMessage":"no schema found for %s (in provider %s)","messagePattern":"no schema found for (.+?) \\(in provider (.+?)\\)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/command/jsonplan/action_invocations.go","lineNumber":127,"sourceCode":"\t\t}\n\t\tret = append(ret, ai)\n\t}\n\treturn ret, nil\n}\n\nfunc MarshalActionInvocation(action *plans.ActionInvocationInstanceSrc, schemas *terraform.Schemas) (ActionInvocation, error) {\n\tai := ActionInvocation{\n\t\tAddress:      action.Addr.String(),\n\t\tType:         action.Addr.Action.Action.Type,\n\t\tName:         action.Addr.Action.Action.Name,\n\t\tProviderName: action.ProviderAddr.Provider.String(),\n\t}\n\tschema := schemas.ActionTypeConfig(\n\t\taction.ProviderAddr.Provider,\n\t\taction.Addr.Action.Action.Type,\n\t)\n\tif schema.ConfigSchema == nil {\n\t\treturn ai, fmt.Errorf(\"no schema found for %s (in provider %s)\", action.Addr.Action.Action.Type, action.ProviderAddr.Provider)\n\t}\n\n\tactionDec, err := action.Decode(&schema)\n\tif err != nil {\n\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{}","sourceCodeStart":109,"sourceCodeEnd":145,"githubUrl":"https://github.com/hashicorp/terraform/blob/c9def3e214014c1188faabfc4a5bde5095139765/internal/command/jsonplan/action_invocations.go#L109-L145","documentation":"Returned by jsonplan.MarshalActionInvocation when schemas.ActionTypeConfig(provider, type).ConfigSchema is nil — i.e. the loaded schema set has no entry for the action type within its provider (action_invocations.go:122-128). The %s placeholders are the action type and provider address. Without a config schema the action invocation cannot be marshalled, so the error propagates.","triggerScenarios":"Producing JSON plan output for a plan containing an action invocation whose action type is not present in the installed provider's schema: provider not installed, wrong/old provider version, action type renamed/removed, or the schema cache is stale relative to the plan.","commonSituations":"Forgetting `terraform init` so provider action schemas are not loaded before `terraform show -json`; a plan referencing an action type dropped in a provider upgrade; lock file pinning a provider version without that action; provider fork that lacks the action.","solutions":["Run `terraform init` to load the provider schemas that define the action type before show -json.","Update or pin required_providers to a version that includes the action type.","Regenerate the plan after installing the correct provider (avoid rendering plans made with a different provider set).","Remove the action from configuration if the action type is no longer supported."],"exampleFix":"# before\n$ terraform show -json tfplan   # action provider schema not loaded\n# after\n$ terraform init\n$ terraform show -json tfplan","handlingStrategy":"validation","validationCode":"// Confirm every action type has a config schema before marshalling.\nfor _, a := range actions {\n    if schemas.ActionTypeConfig(a.ProviderAddr.Provider, a.Addr.Action.Action.Type).ConfigSchema == nil {\n        return fmt.Errorf(\"no schema for action %s in %s; run terraform init\",\n            a.Addr.Action.Action.Type, a.ProviderAddr.Provider)\n    }\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Run `terraform init` to load provider action schemas before `terraform show -json`.","Pin required_providers to versions that define the action types in your plan.","Re-plan with the correct provider set instead of rendering stale plans."],"tags":["terraform-jsonplan","action","schema","provider","missing-schema"],"analyzedSha":"c9def3e214014c1188faabfc4a5bde5095139765","analyzedAt":"2026-08-07T15:39:49.278Z","schemaVersion":2},"datasetVersion":"2026-08-07T21:17:07.882Z"}