{"record":{"id":"771560d1847148d9","repo":"quarkusio/quarkus","slug":"configuration-id-key-duplicates-the-default-co","errorCode":null,"errorMessage":"configuration id '<key>' duplicates the default configuration id","messagePattern":"configuration id '<key>' duplicates the default configuration id","errorType":"validation","errorClass":"ConfigurationException","httpStatus":null,"severity":"error","filePath":"extensions/oidc-common/runtime/src/main/java/io/quarkus/oidc/common/runtime/OidcCommonUtils.java","lineNumber":593,"sourceCode":"    private static Map<String, Object> additionalClaims(Map<String, String> claims) {\n        return (Map) claims;\n    }\n\n    private static SignatureAlgorithm getSignatureAlgorithm(Credentials credentials, SignatureAlgorithm defaultAlgorithm) {\n        if (credentials.jwt().signatureAlgorithm().isPresent()) {\n            try {\n                return SignatureAlgorithm.fromAlgorithm(credentials.jwt().signatureAlgorithm().get());\n            } catch (Exception ex) {\n                throw new ConfigurationException(\"Unsupported signature algorithm\");\n            }\n        } else {\n            return defaultAlgorithm;\n        }\n    }\n\n    public static void verifyConfigurationId(String defaultId, String configKey, Optional<String> configId) {\n        if (configKey.equals(defaultId)) {\n            throw new ConfigurationException(\"configuration id '\" + configKey + \"' duplicates the default configuration id\");\n        }\n        if (configId.isPresent() && !configKey.equals(configId.get())) {\n            throw new ConfigurationException(\"Configuration has 2 different id values: '\"\n                    + configKey + \"' and '\" + configId.get() + \"'\");\n        }\n\n    }\n\n    public static String initClientSecretBasicAuth(OidcClientCommonConfig oidcConfig, String clientSecret) {\n        if (clientSecret != null && isClientSecretBasicAuthRequired(oidcConfig.credentials())) {\n            return basicSchemeValue(oidcConfig.clientId().get(), clientSecret);\n        }\n        return null;\n    }\n\n    public static String basicSchemeValue(String name, String secret) {\n        return OidcConstants.BASIC_SCHEME + \" \"\n                + Base64.getEncoder().encodeToString((name + \":\" + secret).getBytes(StandardCharsets.UTF_8));","sourceCodeStart":575,"sourceCodeEnd":611,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/extensions/oidc-common/runtime/src/main/java/io/quarkus/oidc/common/runtime/OidcCommonUtils.java#L575-L611","documentation":"Named (non-default) OIDC configurations must use a config key different from the default configuration's id. If a named config key equals the default id, Quarkus cannot disambiguate the two configurations and throws at startup.","triggerScenarios":"A named config block (e.g. quarkus.oidc-client.\"<key>\" or quarkus.oidc.\"<key>\") whose <key> equals the default configuration's id passed to verifyConfigurationId.","commonSituations":"Renaming the default tenant/config id but leaving a named block keyed with the old default name; scaffolding tools generating named configs that collide with the default id.","solutions":["Rename the named config key so it differs from the default configuration id","Or set quarkus.oidc.<key>.configuration-id... actually change the key: use a distinct key in the config path quarkus.oidc.\"<new-key>\"","Merge the named block into the default configuration if they are meant to be the same"],"exampleFix":"// before\nquarkus.oidc.auth-server-url=https://idp.example.com\nquarkus.oidc.myapp.configuration-id=myapp   // 'myapp' key duplicates default id\nquarkus.oidc.\"myapp\".auth-server-url=...\n// after\nquarkus.oidc.myapp.auth-server-url=https://idp.example.com\nquarkus.oidc.\"service-a\".auth-server-url=...","handlingStrategy":"validation","validationCode":"String defaultId = \"<default-config-id>\";\nSet<String> namedKeys = Set.of(\"key1\",\"key2\"); // from config scanning\nif (namedKeys.contains(defaultId)) throw new IllegalStateException(\"Named config key \" + defaultId + \" duplicates default id\");","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Keep named config keys unique and distinct from the default id","After renaming the default id, grep config files for leftover named blocks using the old name","Prefer descriptive, project-specific keys for named configs"],"tags":["oidc","config","naming","startup"],"backgroundTag":"duplicate-config-id","analyzedSha":"e1c734241f34c7919086ceb4c9262b4a58f6de44","analyzedAt":"2026-09-05T17:01:29.979Z","contentChangedAt":"2026-09-05T17:01:29.979Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}