ory/kratos · error

provider type is not supported, supported are

Error message

provider type %s is not supported, supported are: %v

What it means

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.

Solutions

  1. Check the config's provider `provider` field for typos; compare against the supported list printed in the error message.
  2. Use a supported provider type such as generic, google, apple, github, gitlab, etc.
  3. For an unsupported upstream, use the `generic` OIDC provider type with its issuer_url and client config.
  4. Upgrade Ory Kratos if the desired provider type exists only in a newer version.

Example fix

// before
provider: gogle
// after
provider: google
Defensive patterns

Strategy: validation

Validate before calling

supported := []string{"generic","google","apple","github","gitlab","microsoft","discord","slack","facebook"}
if !slices.Contains(supported, cfg.Provider) { return fmt.Errorf("unsupported oidc provider type %q", cfg.Provider) }

Try / catch

p, err := c.Provider(ctx, id, reg)
if err != nil {
  log.WithError(err).Errorf("OIDC provider %s misconfigured; check the 'provider' field", id)
  return err
}

Prevention

When it happens

Trigger: 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).

Common situations: 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.

Understand the failure class

Background: Invalid enum value errors: "Unknown type", "Invalid scope", "must be one of" — when a string is not on the library's allowed list — this error's family across 23 libraries.

Related errors


AI-assisted analysis of ory/kratos@b86338da04 (2026-09-07). Data as JSON: /api/errors/08169902852c1d9b. Report an issue: GitHub.

Appendix: source

Thrown at selfservice/strategy/oidc/provider_config.go:276

	"linkedin_v2": NewProviderLinkedInV2,
	"patreon":     NewProviderPatreon,
	"lark":        NewProviderLark,
	"x":           NewProviderX,
	"line":        NewProviderLineV21,
	"jackson":     NewProviderJackson,
	"fedcm-test":  NewProviderTestFedcm,
	"amazon":      NewProviderAmazon,
	"uaepass":     NewProviderUAEPass,
}

func (c ConfigurationCollection) Provider(id string, reg Dependencies) (Provider, error) {
	for _, p := range c.Providers {
		if p.ID == id {
			if f, ok := supportedProviders[p.Provider]; ok {
				return f(&p, reg), nil
			}

			return nil, errors.Errorf("provider type %s is not supported, supported are: %v", p.Provider, maps.Keys(supportedProviders))
		}
	}
	return nil, errors.WithStack(herodot.ErrNotFound().WithReasonf(`OpenID Connect Provider "%s" is unknown or has not been configured`, id))
}

View on GitHub (pinned to b86338da04)