{"record":{"id":"08169902852c1d9b","repo":"ory/kratos","slug":"provider-type-s-is-not-supported-supported-are","errorCode":null,"errorMessage":"provider type %s is not supported, supported are: %v","messagePattern":"provider type (.+?) is not supported, supported are: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"selfservice/strategy/oidc/provider_config.go","lineNumber":276,"sourceCode":"\t\"linkedin_v2\": NewProviderLinkedInV2,\n\t\"patreon\":     NewProviderPatreon,\n\t\"lark\":        NewProviderLark,\n\t\"x\":           NewProviderX,\n\t\"line\":        NewProviderLineV21,\n\t\"jackson\":     NewProviderJackson,\n\t\"fedcm-test\":  NewProviderTestFedcm,\n\t\"amazon\":      NewProviderAmazon,\n\t\"uaepass\":     NewProviderUAEPass,\n}\n\nfunc (c ConfigurationCollection) Provider(id string, reg Dependencies) (Provider, error) {\n\tfor _, p := range c.Providers {\n\t\tif p.ID == id {\n\t\t\tif f, ok := supportedProviders[p.Provider]; ok {\n\t\t\t\treturn f(&p, reg), nil\n\t\t\t}\n\n\t\t\treturn nil, errors.Errorf(\"provider type %s is not supported, supported are: %v\", p.Provider, maps.Keys(supportedProviders))\n\t\t}\n\t}\n\treturn nil, errors.WithStack(herodot.ErrNotFound().WithReasonf(`OpenID Connect Provider \"%s\" is unknown or has not been configured`, id))\n}\n","sourceCodeStart":258,"sourceCodeEnd":281,"githubUrl":"https://github.com/ory/kratos/blob/b86338da04a040247a07f46100a86dcfb3875909/selfservice/strategy/oidc/provider_config.go#L258-L281","documentation":"Provider looks up an OIDC provider by ID in the configuration and instantiates the matching provider implementation from supportedProviders. When the provider ID exists but its configured type (p.Provider) has no registered factory, this error is thrown listing the supported types.","triggerScenarios":"Requesting a linked/linkable OIDC provider whose configuration entry has a `provider` value that is not one of the compiled-in supported provider types (e.g. a typo like \"gogle\", or a provider type added in config but not supported by this build).","commonSituations":"Typo in oidc provider config `provider` field, using a premium/unsupported provider name, or running a build/version that lacks the provider type referenced in config.","solutions":["Check the config's provider `provider` field for typos; compare against the supported list printed in the error message.","Use a supported provider type such as generic, google, apple, github, gitlab, etc.","For an unsupported upstream, use the `generic` OIDC provider type with its issuer_url and client config.","Upgrade Ory Kratos if the desired provider type exists only in a newer version."],"exampleFix":"// before\nprovider: gogle\n// after\nprovider: google","handlingStrategy":"validation","validationCode":"supported := []string{\"generic\",\"google\",\"apple\",\"github\",\"gitlab\",\"microsoft\",\"discord\",\"slack\",\"facebook\"}\nif !slices.Contains(supported, cfg.Provider) { return fmt.Errorf(\"unsupported oidc provider type %q\", cfg.Provider) }","typeGuard":null,"tryCatchPattern":"p, err := c.Provider(ctx, id, reg)\nif err != nil {\n  log.WithError(err).Errorf(\"OIDC provider %s misconfigured; check the 'provider' field\", id)\n  return err\n}","preventionTips":["Copy provider type names exactly from the documented supported list.","Use schema validation (JSON schema / config lint) for the oidc config section.","Prefer the `generic` provider type for arbitrary OIDC issuers.","Re-check config after upgrading Kratos versions."],"tags":["oidc","configuration","unsupported-provider","enum"],"backgroundTag":"invalid-enum-value","analyzedSha":"b86338da04a040247a07f46100a86dcfb3875909","analyzedAt":"2026-09-07T15:58:15.934Z","contentChangedAt":"2026-09-07T15:58:15.934Z","schemaVersion":2},"datasetVersion":"2026-09-16T09:17:16.951Z"}