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
- Add the required quarkus.oidc-client-registration...auth-server-url / registration-path properties so the config initializes
- Check you are using the correct client registration name (named config must exist)
- 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
- Ensure named registration configs exist for every name used in code
- Don't disable configs still referenced at runtime
- Fail fast with a startup config check
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
- Application 'web-app' type is only supported if access token
- Failed to parse the realm name.
- Failed to find a matching OidcTenantConfig for tenant:
- Truststore with configured password which keeps thumbprints
- Token is opaque but the opaque token introspection is not al
AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05).
Data as JSON: /api/errors/3779827377058ec1.
Report an issue: GitHub.