Keycloak App container fails to start wrong persistence storage version

Issue: The keycloak container fails to start, after the upgrade of the Keycloak app.
In the keylcoak apps logs we see the message (univention-app logs keycloak)

2026-03-27 09:22:16,901 INFO  [org.hibernate.orm.jdbc.batch] (JPA Startup Thread) HHH100501: Automatic JDBC statement batching enabled (maximum batch size 32)
2026-03-27 09:22:16,912 INFO  [com.arjuna.ats.jbossatx] (main) ARJUNA032014: Stopping transaction recovery manager
ERROR: Failed to start server in (production) mode
ERROR: [PersistenceUnit: keycloak-default] Unable to build Hibernate SessionFactory
ERROR: Persistence unit 'keycloak-default' was configured to run with a database version of at least '10.6.0', but the actual version is '10.5.28'. Consider upgrading your database. Alternatively, rebuild your application with 'jakarta.persistence.database-product-version=10.5.28' (but this may disable some features and/or impact performance negatively).

The app is at version 26.5.6

Cause: The specific instance uses an external MariaDB server for persistence storage. This server is at version 10.5.28. Since the app version 26.4 keycloak has a requirement for the MariaDB version >=10.6.0.

Solution: We first need to find out what server keycloak tries to connect to. For this i enable the log level debug

univention-app configure keycloak --set keycloak/log/level=DEBUG

and then i can see in the apps logs

Setting kc/db/url to 'jdbc:mariadb://1.2.3.4:3306/keycloak'

This tells us that the mariadb server is reached under the IP 1.2.3.4. Now we can upgrade that system or at least the mariadb version.

This topic was automatically closed after 22 hours. New replies are no longer allowed.