SonarQube Server 2025 Release 6

Hello,

we got an error after upgrading to 2025.6 during the database upgrade process. To resolve the issue, we have to manually downgrade the jdbc driver from 13.2.1 to 13.2.0. We use an Azure SQL database as source and run the official docker image.

We download the old driver, renamed it with the new version filename and load the file with docker compose

services:
  sonarqube:
    volumes:
      - ./jdbc/mssql-jdbc-13.2.1.jre11.jar:/opt/sonarqube/lib/jdbc/mssql/mssql-jdbc-13.2.1.jre11.jar:ro

After the manual downgrade, the database update works without any problems and the server runs without any problems.

Log Files:

sonarqube  | 2025.12.15 07:29:19 ERROR web[][DbMigrations] 1/10 #202506016 'Add index based on 'resource_id' and 'resource_type' to 'jira_work_items_resources' table': failure | time=56ms

sonarqube  | 2025.12.15 07:29:19 ERROR web[][DbMigrations] Executed 0/10 DB migrations: failure | time=58ms

sonarqube  | 2025.12.15 07:29:19 ERROR web[][o.s.s.p.d.m.DatabaseMigrationImpl] DB migration failed | time=101ms

sonarqube  | 2025.12.15 07:29:19 ERROR web[][o.s.s.p.d.m.DatabaseMigrationImpl] DB migration ended with an exception

sonarqube  | org.sonar.server.platform.db.migration.step.MigrationStepExecutionException: Execution of migration step #202506016 'Add index based on 'resource_id' and 'resource_type' to 'jira_work_items_resources' table' failed
 
sonarqube  | org.sonar.server.platform.db.migration.step.MigrationStepExecutionException: Execution of migration step #202506016 'Add index based on 'resource_id' and 'resource_type' to 'jira_work_items_resources' table' failed
sonarqube  |    at org.sonar.server.platform.db.migration.step.MigrationStepsExecutorImpl.execute(MigrationStepsExecutorImpl.java:105)
sonarqube  |    at org.sonar.server.platform.db.migration.step.MigrationStepsExecutorImpl.execute(MigrationStepsExecutorImpl.java:89)
sonarqube  |    at org.sonar.server.platform.db.migration.step.MigrationStepsExecutorImpl.execute(MigrationStepsExecutorImpl.java:66)
sonarqube  |    at org.sonar.server.platform.db.migration.engine.MigrationEngineImpl.execute(MigrationEngineImpl.java:55)
sonarqube  |    at org.sonar.server.platform.db.migration.DatabaseMigrationImpl.doUpgradeDb(DatabaseMigrationImpl.java:106)
sonarqube  |    at org.sonar.server.platform.db.migration.DatabaseMigrationImpl.doDatabaseMigration(DatabaseMigrationImpl.java:81)
sonarqube  |    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
sonarqube  |    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
sonarqube  |    at java.base/java.lang.Thread.run(Unknown Source)
sonarqube  | Caused by: java.lang.IllegalStateException: Can not check that table jira_work_items_resources exists
sonarqube  |    at org.sonar.db.DatabaseUtils.wrapSqlException(DatabaseUtils.java:471)
sonarqube  |    at org.sonar.db.DatabaseUtils.getIndex(DatabaseUtils.java:374)
sonarqube  |    at org.sonar.db.DatabaseUtils.findIndex(DatabaseUtils.java:361)
sonarqube  |    at org.sonar.db.DatabaseUtils.findIndex(DatabaseUtils.java:347)
sonarqube  |    at org.sonar.db.DatabaseUtils.doIndexExistsIgnoreIndexCase(DatabaseUtils.java:326)
sonarqube  |    at org.sonar.db.DatabaseUtils.indexExistsIgnoreCase(DatabaseUtils.java:320)
sonarqube  |    at org.sonar.server.platform.db.migration.step.CreateNonUniqueIndexOnColumns.execute(CreateNonUniqueIndexOnColumns.java:44)
sonarqube  |    at org.sonar.server.platform.db.migration.step.DdlChange.execute(DdlChange.java:45)
sonarqube  |    at org.sonar.server.platform.db.migration.step.MigrationStepsExecutorImpl.execute(MigrationStepsExecutorImpl.java:101)
sonarqube  |    ... 8 common frames omitted
sonarqube  | Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Cannot resolve collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "SQL_Latin1_General_CP1_CS_AS" in UNION ALL operator occurring in ORDER BY statement column 3.
sonarqube  |    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:278)
sonarqube  |    at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1788)
sonarqube  |    at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:688)
sonarqube  |    at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:607)
sonarqube  |    at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7825)
sonarqube  |    at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:4828)
sonarqube  |    at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:321)
sonarqube  |    at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:253)
sonarqube  |    at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(SQLServerPreparedStatement.java:521)
sonarqube  |    at com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.getIndexInfo(SQLServerDatabaseMetaData.java:1292)
sonarqube  |    at com.zaxxer.hikari.pool.ProxyDatabaseMetaData.getIndexInfo(ProxyDatabaseMetaData.java:229)
sonarqube  |    at com.zaxxer.hikari.pool.HikariProxyDatabaseMetaData.getIndexInfo(HikariProxyDatabaseMetaData.java)
sonarqube  |    at org.sonar.db.DatabaseUtils.getIndex(DatabaseUtils.java:365)
sonarqube  |    ... 15 common frames omitted