{"record":{"id":"4a5b2187ec7f47b9","repo":"SonarSource/sonarqube","slug":"unsupported-dialect-id-4a5b21","errorCode":null,"errorMessage":"Unsupported dialect id ","messagePattern":"Unsupported dialect id ","errorType":"exception","errorClass":"java.lang.IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/sql/CreateTableBuilder.java","lineNumber":212,"sourceCode":"\n  private void appendColumnFlags(StringBuilder res, Dialect dialect, ColumnDef columnDef) {\n    Collection<ColumnFlag> columnFlags = this.flagsByColumn.get(columnDef);\n    if (columnFlags.contains(ColumnFlag.AUTO_INCREMENT)) {\n      switch (dialect.getId()) {\n        case Oracle.ID:\n          // no auto increment on Oracle, must use a sequence\n          break;\n        case PostgreSql.ID:\n          // no specific clause on PostgreSQL but a specific type\n          break;\n        case MsSql.ID:\n          res.append(\" IDENTITY (1,1)\");\n          break;\n        case H2.ID:\n          res.append(\" AUTO_INCREMENT (1,1)\");\n          break;\n        default:\n          throw new IllegalArgumentException(\"Unsupported dialect id \" + dialect.getId());\n      }\n    }\n  }\n\n  private void appendPkConstraint(StringBuilder res) {\n    if (pkColumnDefs.isEmpty()) {\n      return;\n    }\n    res.append(\", \");\n    res.append(\"CONSTRAINT \");\n    appendPkConstraintName(res);\n    res.append(\" PRIMARY KEY \");\n    res.append('(');\n    appendColumnNames(res, pkColumnDefs);\n    res.append(')');\n  }\n\n  private void appendPkConstraintName(StringBuilder res) {","sourceCodeStart":194,"sourceCodeEnd":230,"githubUrl":"https://github.com/SonarSource/sonarqube/blob/184c821202192afc1c599fc912d0889b69fffa53/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/sql/CreateTableBuilder.java#L194-L230","documentation":"Thrown by CreateTableBuilder.appendColumnFlags when generating auto-increment SQL for a dialect the builder does not recognize. Supported dialects for the IDENTITY/AUTO_INCREMENT branch are a fixed set (e.g. MsSql, H2); anything else hits the default case.","triggerScenarios":"Creating a table with an auto-increment column while the configured sonar dialect id is unsupported/unknown for that flag.","commonSituations":"Custom or misconfigured DatabaseDialect with an id not matching supported constants; running SonarQube against an officially unsupported database; dialect enum updated but builder switch not extended.","solutions":["Use a supported database/dialect id (PostgreSQL, MySQL, MsSql, Oracle, H2).","Fix the dialect configuration so dialect.getId() returns a known id.","Extend the switch in CreateTableBuilder if adding a new dialect."],"exampleFix":"// before\nsonar.jdbc.url=jdbc:db2://localhost:50000/sonar\n// after\nsonar.jdbc.url=jdbc:postgresql://localhost:5432/sonar","handlingStrategy":"validation","validationCode":"Set<String> supported = Set.of(PostgreSql.ID, MySql.ID, MsSql.ID, Oracle.ID, H2.ID); if (!supported.contains(dialect.getId())) { fail(\"unsupported dialect \" + dialect.getId()); }","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Deploy only on officially supported databases","Log dialect.getId() at migration start for diagnosability","Extend builder switches whenever a new dialect is introduced"],"tags":["database","dialect","unsupported","migration"],"backgroundTag":"invalid-enum-value","analyzedSha":"184c821202192afc1c599fc912d0889b69fffa53","analyzedAt":"2026-09-09T12:23:51.573Z","contentChangedAt":"2026-09-09T12:23:51.573Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}