{"record":{"id":"7e7b23f7260f3ea5","repo":"quarkusio/quarkus","slug":"unknown-reactive-sql-client-client","errorCode":null,"errorMessage":"Unknown Reactive Sql Client <client>","messagePattern":"Unknown Reactive Sql Client <client>","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"extensions/oidc-db-token-state-manager/deployment/src/main/java/io/quarkus/oidc/db/token/state/manager/OidcDbTokenStateManagerProcessor.java","lineNumber":58,"sourceCode":"    @Record(STATIC_INIT)\n    @BuildStep\n    SyntheticBeanBuildItem produceDbTokenStateManagerBean(OidcDbTokenStateManagerRecorder recorder,\n            ReactiveSqlClientBuildItem sqlClientBuildItem) {\n        final String[] queryParamPlaceholders;\n        switch (sqlClientBuildItem.reactiveClient) {\n            case REACTIVE_PG_CLIENT:\n                queryParamPlaceholders = new String[] { \"$1\", \"$2\", \"$3\", \"$4\", \"$5\", \"$6\", \"$7\" };\n                break;\n            case REACTIVE_MSSQL_CLIENT:\n                queryParamPlaceholders = new String[] { \"@p1\", \"@p2\", \"@p3\", \"@p4\", \"@p5\", \"@p6\", \"@p7\" };\n                break;\n            case REACTIVE_MYSQL_CLIENT:\n            case REACTIVE_DB2_CLIENT:\n            case REACTIVE_ORACLE_CLIENT:\n                queryParamPlaceholders = new String[] { \"?\", \"?\", \"?\", \"?\", \"?\", \"?\", \"?\" };\n                break;\n            default:\n                throw new RuntimeException(\"Unknown Reactive Sql Client \" + sqlClientBuildItem.reactiveClient);\n        }\n        String deleteStatement = format(\"DELETE FROM oidc_db_token_state_manager WHERE id = %s\", queryParamPlaceholders[0]);\n        String getQuery = format(\n                \"SELECT id_token, access_token, refresh_token, access_token_expires_in, access_token_scope FROM oidc_db_token_state_manager WHERE \"\n                        +\n                        \"id = %s\",\n                queryParamPlaceholders[0]);\n        String insertStatement = format(\"INSERT INTO oidc_db_token_state_manager (id_token, access_token, refresh_token,\" +\n                \" access_token_expires_in, access_token_scope, expires_in, id) VALUES (%s, %s, %s, %s, %s, %s, %s)\",\n                queryParamPlaceholders[0],\n                queryParamPlaceholders[1],\n                queryParamPlaceholders[2], queryParamPlaceholders[3], queryParamPlaceholders[4], queryParamPlaceholders[5],\n                queryParamPlaceholders[6]);\n        return SyntheticBeanBuildItem\n                .configure(OidcDbTokenStateManager.class)\n                .alternative(true)\n                .priority(1)\n                .addType(TokenStateManager.class)","sourceCodeStart":40,"sourceCodeEnd":76,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/extensions/oidc-db-token-state-manager/deployment/src/main/java/io/quarkus/oidc/db/token/state/manager/OidcDbTokenStateManagerProcessor.java#L40-L76","documentation":"OidcDbTokenStateManagerProcessor.produceDbTokenStateManagerBean throws when the selected Reactive SQL client does not match any of the supported clients (PostgreSQL, MySQL, MSSQL, DB2, Oracle). Each supported client requires its own parameter placeholder syntax for building SQL statements.","triggerScenarios":"The detected ReactiveSqlClientBuildItem.reactiveClient is not one of REACTIVE_PG_CLIENT, REACTIVE_MYSQL_CLIENT, REACTIVE_MSSQL_CLIENT, REACTIVE_DB2_CLIENT, REACTIVE_ORACLE_CLIENT in the switch/default in the bean producer.","commonSituations":"A new/unsupported reactive SQL client extension is on the classpath and wins detection; internal wiring passes an unexpected enum value; future Quarkus versions add new client types not yet handled by this extension.","solutions":["Use one of the supported reactive SQL clients: PostgreSQL, MySQL, MSSQL, DB2, or Oracle","Check which reactive SQL client extensions are present and remove the unsupported one","Upgrade quarkus-oidc-db-token-state-manager to a version supporting your client"],"exampleFix":"// before\ndependencies: quarkus-reactive-<unsupported>-client only\n// after\nadd io.quarkus:quarkus-reactive-pg-client (or mysql/mssql/db2/oracle)","handlingStrategy":"validation","validationCode":"Set<ReactiveSqlClient> supported = Set.of(REACTIVE_PG_CLIENT, REACTIVE_MYSQL_CLIENT,\n        REACTIVE_MSSQL_CLIENT, REACTIVE_DB2_CLIENT, REACTIVE_ORACLE_CLIENT);\nif (!supported.contains(reactiveClient)) {\n    throw new IllegalArgumentException(\"Unsupported reactive SQL client: \" + reactiveClient);\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Pin application dependencies to supported reactive SQL clients only","Check extension compatibility after Quarkus upgrades","Avoid pulling multiple database extensions transitively"],"tags":["quarkus","oidc","reactive-sql","configuration"],"backgroundTag":"unsupported-database-client","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"}