{"record":{"id":"ef3ff2bb814ddfef","repo":"hashicorp/terraform","slug":"resource-schema-not-found-for-type-q-ef3ff2","errorCode":null,"errorMessage":"resource schema not found for type %q","messagePattern":"resource schema not found for type %q","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/grpcwrap/provider6.go","lineNumber":851,"sourceCode":"\t\treturn resp, nil\n\t}\n\n\tdv, err := encodeDynamicValue6(upgradeResp.UpgradedIdentity, ty)\n\tif err != nil {\n\t\tresp.Diagnostics = convert.AppendProtoDiag(resp.Diagnostics, err)\n\t\treturn resp, nil\n\t}\n\n\tresp.UpgradedIdentity = &tfplugin6.ResourceIdentityData{\n\t\tIdentityData: dv,\n\t}\n\treturn resp, nil\n}\n\nfunc (p *provider6) ListResource(req *tfplugin6.ListResource_Request, res tfplugin6.Provider_ListResourceServer) error {\n\tresourceSchema, ok := p.schema.ResourceTypes[req.TypeName]\n\tif !ok {\n\t\treturn fmt.Errorf(\"resource schema not found for type %q\", req.TypeName)\n\t}\n\tlistSchema, ok := p.schema.ListResourceTypes[req.TypeName]\n\tif !ok {\n\t\treturn fmt.Errorf(\"list resource schema not found for type %q\", req.TypeName)\n\t}\n\tcfg, err := decodeDynamicValue6(req.Config, listSchema.Body.ImpliedType())\n\tif err != nil {\n\t\treturn status.Errorf(codes.InvalidArgument, \"failed to decode config: %v\", err)\n\t}\n\tresp := p.provider.ListResource(providers.ListResourceRequest{\n\t\tTypeName:              req.TypeName,\n\t\tConfig:                cfg,\n\t\tLimit:                 req.Limit,\n\t\tIncludeResourceObject: req.IncludeResourceObject,\n\t})\n\tif resp.Diagnostics.HasErrors() {\n\t\treturn resp.Diagnostics.Err()\n\t}","sourceCodeStart":833,"sourceCodeEnd":869,"githubUrl":"https://github.com/hashicorp/terraform/blob/d32a084675427f5ac3f7d2868578ef8b2c1dc525/internal/grpcwrap/provider6.go#L833-L869","documentation":"tfplugin6 equivalent of error 960. Returned by the provider6 ListResource handler when the requested resource type is not in p.schema.ResourceTypes. Terraform core asked to list a type the provider never registered, so the wrapper has no schema to work against.","triggerScenarios":"A tfplugin6 ListResource RPC whose req.TypeName is absent from p.schema.ResourceTypes.","commonSituations":"Provider version lacking the resource; type name typo; core/provider schema skew; built-in provider that forgot to register the type.","solutions":["Run `terraform providers schema -json` and confirm the type is advertised.","Correct the resource type spelling in configuration.","Upgrade or pin the provider to a version that registers the resource.","If developing a built-in provider, add the type to schema.ResourceTypes."],"exampleFix":"// before\nproviderSchema.ResourceTypes = map[string]*config.Block{}\n// after\nproviderSchema.ResourceTypes[\"aws_example_thing\"] = exampleResourceSchema","handlingStrategy":"validation","validationCode":"// tfplugin6 path: confirm the type is registered before listing.\nschemas, err := client.GetProviderSchema(ctx, &tfplugin6.GetProviderSchema_Request{})\nif err != nil {\n    return err\n}\nif _, ok := schemas.ResourceTypes[typeName]; !ok {\n    return fmt.Errorf(\"will not call ListResource: type %q not registered by provider\", typeName)\n}\nreturn client.ListResource(ctx, typeName, config)","typeGuard":"func resourceTypeRegistered6(s *tfplugin6.GetProviderSchema_Response, typeName string) bool {\n    _, ok := s.ResourceTypes[typeName]\n    return ok\n}","tryCatchPattern":null,"preventionTips":["Reconcile expected types against GetProviderSchema before ListResource.","Pin provider versions and assert the type exists in CI."],"tags":["terraform","provider","schema","resource","list-resource","grpc","tfplugin6","version-mismatch"],"backgroundTag":null,"analyzedSha":"d32a084675427f5ac3f7d2868578ef8b2c1dc525","analyzedAt":"2026-08-11T18:43:52.779Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}