quarkusio/quarkus · error · DisabledOidcClientRegistrationException

<message: '%s' client registration configuration is not init

Error message

<message: '%s' client registration configuration is not initialized>

What it means

When a client registration configuration is effectively disabled (e.g. the OIDC provider config is not initialized/registration disabled), the recorder returns a DisabledOidcClientRegistration placeholder instead of a real client. Any call to registeredClient() on it throws DisabledOidcClientRegistrationException carrying the message '<clientName> client registration configuration is not initialized'. It signals that registration was never set up for this named configuration.

Source

Thrown at extensions/oidc-client-registration/runtime/src/main/java/io/quarkus/oidc/client/registration/runtime/OidcClientRegistrationRecorder.java:259

                        connectionDelayInMillisecs, vertx,
                        oidcConfig.useBlockingDnsLookup())
                .onItem().transform(json -> new OidcConfigurationMetadata(json.getString("registration_endpoint")));
    }

    protected static OidcClientRegistrationException toOidcClientRegException(String authServerUrlString, Throwable cause) {
        return new OidcClientRegistrationException(OidcCommonUtils.formatConnectionErrorMessage(authServerUrlString), cause);
    }

    private static class DisabledOidcClientRegistration implements OidcClientRegistration {
        String message;

        DisabledOidcClientRegistration(String message) {
            this.message = message;
        }

        @Override
        public Uni<RegisteredClient> registeredClient() {
            throw new DisabledOidcClientRegistrationException(message);
        }

        @Override
        public Uni<RegisteredClient> registerClient(ClientMetadata reg) {
            throw new DisabledOidcClientRegistrationException(message);
        }

        @Override
        public Multi<RegisteredClient> registerClients(List<ClientMetadata> regs) {
            throw new DisabledOidcClientRegistrationException(message);
        }

        @Override
        public void close() throws IOException {
        }

        @Override
        public Uni<RegisteredClient> readClient(String registrationUri, String registrationToken) {

View on GitHub (pinned to e1c734241f)

Solutions

  1. Add the required quarkus.oidc-client-registration...auth-server-url / registration-path properties so the config initializes
  2. Check you are using the correct client registration name (named config must exist)
  3. Check application startup logs for the root reason the registration configuration was not initialized

Example fix

# before
# (no config for 'orders' registration but code requests it)
# after
quarkus.oidc-client-registration.orders.auth-server-url=https://idp.example.com/realms/main
Defensive patterns

Strategy: try-catch

Validate before calling

null

Type guard

null

Try / catch

try {
    RegisteredClient rc = registration.registeredClient().await().indefinitely();
} catch (DisabledOidcClientRegistrationException e) {
    LOG.warnf("Registration not initialized: %s", e.getMessage()); // degrade gracefully
}

Prevention

When it happens

Trigger: Injecting/obtaining OidcClientRegistration for a named config whose registration was disabled or whose OIDC configuration failed to initialize, then calling registeredClient().

Common situations: Referencing a client registration name that was never configured, quarkus.oidc-client-registration...enabled=false, or the parent OIDC config missing so registration could not initialize at build time.

Related errors


AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05). Data as JSON: /api/errors/3779827377058ec1. Report an issue: GitHub.