{"record":{"id":"734998ae060f4b12","repo":"quarkusio/quarkus","slug":"s-is-invalid","errorCode":null,"errorMessage":"'%s' is invalid","messagePattern":"'(.+?)' is invalid","errorType":"validation","errorClass":"ConfigurationException","httpStatus":null,"severity":"error","filePath":"extensions/oidc-common/runtime/src/main/java/io/quarkus/oidc/common/runtime/OidcCommonUtils.java","lineNumber":161,"sourceCode":"        JsonObject maskedJson = jsonObject.copy();\n        if (maskedJson.containsKey(OidcConstants.ACCESS_TOKEN_VALUE)) {\n            maskedJson.put(OidcConstants.ACCESS_TOKEN_VALUE, \"...\");\n        }\n        if (maskedJson.containsKey(OidcConstants.REFRESH_TOKEN_VALUE)) {\n            maskedJson.put(OidcConstants.REFRESH_TOKEN_VALUE, \"...\");\n        }\n        if (maskedJson.containsKey(OidcConstants.ID_TOKEN_VALUE)) {\n            maskedJson.put(OidcConstants.ID_TOKEN_VALUE, \"...\");\n        }\n        return maskedJson;\n    }\n\n    public static void verifyEndpointUrl(String endpointUrl) {\n        try {\n            // Verify that endpoint url is a valid URL\n            URI.create(endpointUrl).toURL();\n        } catch (Throwable ex) {\n            throw new ConfigurationException(\n                    String.format(\"'%s' is invalid\", endpointUrl), ex);\n        }\n    }\n\n    public static void verifyCommonConfiguration(OidcClientCommonConfig oidcConfig, boolean clientIdOptional,\n            boolean isServerConfig) {\n        final String configPrefix = isServerConfig ? \"quarkus.oidc.\" : \"quarkus.oidc-client.\";\n        if (!clientIdOptional && !oidcConfig.clientId().isPresent()) {\n            throw new ConfigurationException(\n                    String.format(\"'%sclient-id' property must be configured\", configPrefix));\n        }\n\n        Credentials creds = oidcConfig.credentials();\n        if (creds.secret().isPresent() && creds.clientSecret().value().isPresent()) {\n            throw new ConfigurationException(\n                    String.format(\n                            \"'%1$scredentials.secret' and '%1$scredentials.client-secret' properties are mutually exclusive\",\n                            configPrefix));","sourceCodeStart":143,"sourceCodeEnd":179,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/extensions/oidc-common/runtime/src/main/java/io/quarkus/oidc/common/runtime/OidcCommonUtils.java#L143-L179","documentation":"OidcCommonUtils.verifyEndpointUrl validates that a configured OIDC endpoint URL (issuer, token, or discovery URL) parses as a valid absolute URL via URI.create(...).toURL(). If parsing fails for any reason, the original endpoint URL is wrapped in a SmallRye ConfigurationException with the message \"'<url>' is invalid\".","triggerScenarios":"At startup/configuration time when any quarkus.oidc.* or quarkus.oidc-client.* URL property (auth-server-url, token-path, discovery url, etc.) contains a malformed value such as missing scheme, illegal characters, or empty string.","commonSituations":"Typos in config (htps:// instead of https://), unencoded spaces or special characters in URLs, environment-variable placeholders left unresolved, trailing garbage after the host.","solutions":["Fix the URL in application.properties/env so it is a well-formed absolute http(s) URL","Verify that config property substitution (env vars, profiles) resolves correctly at runtime","URL-encode any special characters (spaces, non-ASCII) in the endpoint URL"],"exampleFix":"// before\nquarkus.oidc.auth-server-url=htps://idp.example.com/realms/main\n// after\nquarkus.oidc.auth-server-url=https://idp.example.com/realms/main","handlingStrategy":"validation","validationCode":"try {\n    new java.net.URI(url).toURL();\n} catch (Exception e) {\n    throw new IllegalArgumentException(\"Invalid OIDC endpoint URL: \" + url, e);\n}","typeGuard":"boolean isValidUrl(String s) {\n    if (s == null || s.isBlank()) return false;\n    try { new java.net.URI(s).toURL(); return true; } catch (Exception e) { return false; }\n}","tryCatchPattern":"try {\n    oidcConfig.validate();\n} catch (ConfigurationException e) {\n    LOG.error(\"OIDC endpoint URL invalid: \" + e.getMessage());\n}","preventionTips":["Validate URL config values in CI with a schema/unit test","Watch for unresolved env placeholders like ${OIDC_URL}","Always use absolute http(s) URLs with encoded special characters"],"tags":["configuration","url","startup"],"backgroundTag":"invalid-endpoint-url","analyzedSha":"e1c734241f34c7919086ceb4c9262b4a58f6de44","analyzedAt":"2026-09-05T17:01:29.979Z","contentChangedAt":"2026-09-05T17:01:29.979Z","schemaVersion":2},"datasetVersion":"2026-09-12T22:17:10.623Z"}