Description
Before reporting an issue
- I have read and understood the above terms for submitting issues, and I understand that my issue may be closed without action if I do not follow them.
Area
authentication
Describe the bug
When sending authentication requests like this one to Keycloak 26.2.0 in rapid succession:
// Fetch a bearer token for the user
const authResponse = await fetch(
`${keycloakBaseUrl}/realms/${keycloakRealm}/protocol/openid-connect/token`,
{
method: "POST",
body: `client_id=${keycloakClientId}&username=${username}&password=${password}&grant_type=password`,
headers: {
"Content-Type": "application/x-www-form-urlencoded"
}
}
)
they can fail with a response like:
{
"error": "unknown_error",
"error_description": "For more on this error consult the server log."
}
This happens to us on a GitHub Action runner (with limited CPU power) with Keycloak 26.2.0 running in a Docker container. On Keycloak 26.1.5 and earlier this does not happen. It looks related to #38313 which adds a VERSION column to the database.
Logs from the Docker container with docker logs
are:
2025-04-14T15:35:26.0658030Z Updating the configuration and installing your custom providers, if any. Please wait.
2025-04-14T15:35:26.0659544Z 2025-04-14 15:33:19,258 INFO [io.quarkus.deployment.QuarkusAugmentor] (main) Quarkus augmentation completed in 13604ms
2025-04-14T15:35:26.0660803Z Running the server in development mode. DO NOT use this configuration in production.
2025-04-14T15:35:26.0662671Z 2025-04-14 15:33:29,247 INFO [org.keycloak.quarkus.runtime.storage.database.liquibase.QuarkusJpaUpdaterProvider] (main) Initializing database schema. Using changelog META-INF/jpa-changelog-master.xml
2025-04-14T15:35:26.0664769Z 2025-04-14 15:33:33,883 INFO [org.keycloak.quarkus.runtime.storage.infinispan.CacheManagerFactory] (main) Starting Infinispan embedded cache manager
2025-04-14T15:35:26.0666504Z 2025-04-14 15:33:33,953 INFO [org.keycloak.quarkus.runtime.storage.infinispan.CacheManagerFactory] (main) JGroups JDBC_PING discovery enabled.
2025-04-14T15:35:26.0667806Z 2025-04-14 15:33:34,099 INFO [org.infinispan.CONTAINER] (main) Virtual threads support enabled
2025-04-14T15:35:26.0669206Z 2025-04-14 15:33:34,357 INFO [org.infinispan.CONTAINER] (main) ISPN000556: Starting user marshaller 'org.infinispan.commons.marshall.ImmutableProtoStreamMarshaller'
2025-04-14T15:35:26.0671115Z 2025-04-14 15:33:34,801 INFO [org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory] (main) Node name: node_258595, Site name: null
2025-04-14T15:35:26.0673010Z 2025-04-14 15:33:35,222 INFO [org.keycloak.exportimport.dir.DirImportProvider] (main) Importing from directory /opt/keycloak/bin/../data/import
2025-04-14T15:35:26.0674330Z 2025-04-14 15:33:35,232 INFO [org.keycloak.services] (main) KC-SERVICES0050: Initializing master realm
2025-04-14T15:35:26.0675527Z 2025-04-14 15:33:38,091 INFO [org.keycloak.services] (main) KC-SERVICES0030: Full model import requested. Strategy: IGNORE_EXISTING
2025-04-14T15:35:26.0676713Z 2025-04-14 15:33:42,439 INFO [org.keycloak.exportimport.util.ImportUtils] (main) Realm 'TEST' imported
2025-04-14T15:35:26.0677738Z 2025-04-14 15:33:42,524 INFO [org.keycloak.services] (main) KC-SERVICES0032: Import finished successfully
2025-04-14T15:35:26.0678895Z 2025-04-14 15:33:42,528 WARN [org.keycloak.services] (main) KC-SERVICES0110: Environment variable 'KEYCLOAK_ADMIN' is deprecated, use 'KC_BOOTSTRAP_ADMIN_USERNAME' instead
2025-04-14T15:35:26.0679907Z 2025-04-14 15:33:42,528 WARN [org.keycloak.services] (main) KC-SERVICES0110: Environment variable 'KEYCLOAK_ADMIN_PASSWORD' is deprecated, use 'KC_BOOTSTRAP_ADMIN_PASSWORD' instead
2025-04-14T15:35:26.0680770Z 2025-04-14 15:33:42,730 INFO [org.keycloak.services] (main) KC-SERVICES0077: Created temporary admin user with username admin
2025-04-14T15:35:26.0681847Z 2025-04-14 15:33:43,187 INFO [io.quarkus] (main) Keycloak 26.2.0 on JVM (powered by Quarkus 3.20.0) started in 23.639s. Listening on: http://0.0.0.0:8080
2025-04-14T15:35:26.0682477Z 2025-04-14 15:33:43,187 INFO [io.quarkus] (main) Profile dev activated.
2025-04-14T15:35:26.0683333Z 2025-04-14 15:33:43,188 INFO [io.quarkus] (main) Installed features: [agroal, cdi, hibernate-orm, jdbc-h2, keycloak, narayana-jta, opentelemetry, reactive-routes, rest, rest-jackson, smallrye-context-propagation, vertx]
2025-04-14T15:35:26.0684683Z 2025-04-14 15:35:18,641 INFO [org.hibernate.orm.jdbc.batch] (executor-thread-2) HHH100503: On release of batch it still contained JDBC statements
2025-04-14T15:35:26.0687178Z 2025-04-14 15:35:18,647 WARN [com.arjuna.ats.arjuna] (executor-thread-2) ARJUNA012125: TwoPhaseCoordinator.beforeCompletion - failed for SynchronizationImple< 0:ffffac110003:aadd:67fd2ac6:2cf, org.hibernate.resource.transaction.backend.jta.internal.synchronization.RegisteredSynchronization@364de21a >: jakarta.persistence.OptimisticLockException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1; statement executed: update CREDENTIAL set CREATED_DATE=?,CREDENTIAL_DATA=?,PRIORITY=?,SALT=?,SECRET_DATA=?,TYPE=?,USER_ID=?,USER_LABEL=?,VERSION=? where ID=? and VERSION=?
2025-04-14T15:35:26.0689747Z at org.hibernate.internal.ExceptionConverterImpl.wrapStaleStateException(ExceptionConverterImpl.java:221)
2025-04-14T15:35:26.0690637Z at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:95)
2025-04-14T15:35:26.0691977Z at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:167)
2025-04-14T15:35:26.0693096Z at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:173)
2025-04-14T15:35:26.0694061Z at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1433)
2025-04-14T15:35:26.0694847Z at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:491)
2025-04-14T15:35:26.0695635Z at org.hibernate.internal.SessionImpl.flushBeforeTransactionCompletion(SessionImpl.java:2354)
2025-04-14T15:35:26.0696321Z at org.hibernate.internal.SessionImpl.beforeTransactionCompletion(SessionImpl.java:1978)
2025-04-14T15:35:26.0697089Z at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.beforeTransactionCompletion(JdbcCoordinatorImpl.java:439)
2025-04-14T15:35:26.0698098Z at org.hibernate.resource.transaction.backend.jta.internal.JtaTransactionCoordinatorImpl.beforeCompletion(JtaTransactionCoordinatorImpl.java:336)
2025-04-14T15:35:26.0699547Z at org.hibernate.resource.transaction.backend.jta.internal.synchronization.SynchronizationCallbackCoordinatorNonTrackingImpl.beforeCompletion(SynchronizationCallbackCoordinatorNonTrackingImpl.java:47)
2025-04-14T15:35:26.0701034Z at org.hibernate.resource.transaction.backend.jta.internal.synchronization.RegisteredSynchronization.beforeCompletion(RegisteredSynchronization.java:37)
2025-04-14T15:35:26.0702269Z at com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.beforeCompletion(SynchronizationImple.java:52)
2025-04-14T15:35:26.0703099Z at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.beforeCompletion(TwoPhaseCoordinator.java:348)
2025-04-14T15:35:26.0703787Z at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:66)
2025-04-14T15:35:26.0704330Z at com.arjuna.ats.arjuna.AtomicAction.commit(AtomicAction.java:135)
2025-04-14T15:35:26.0705029Z at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1307)
2025-04-14T15:35:26.0705864Z at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:104)
2025-04-14T15:35:26.0706625Z at io.quarkus.narayana.jta.runtime.NotifyingTransactionManager.commit(NotifyingTransactionManager.java:70)
2025-04-14T15:35:26.0707328Z at org.keycloak.transaction.JtaTransactionWrapper.commit(JtaTransactionWrapper.java:102)
2025-04-14T15:35:26.0708136Z at org.keycloak.services.DefaultKeycloakTransactionManager.lambda$commitWithTracing$0(DefaultKeycloakTransactionManager.java:169)
2025-04-14T15:35:26.0708899Z at org.keycloak.tracing.NoopTracingProvider.trace(NoopTracingProvider.java:59)
2025-04-14T15:35:26.0709444Z at org.keycloak.tracing.NoopTracingProvider.trace(NoopTracingProvider.java:69)
2025-04-14T15:35:26.0710171Z at org.keycloak.services.DefaultKeycloakTransactionManager.commitWithTracing(DefaultKeycloakTransactionManager.java:168)
2025-04-14T15:35:26.0711217Z at org.keycloak.services.DefaultKeycloakTransactionManager.commit(DefaultKeycloakTransactionManager.java:136)
2025-04-14T15:35:26.0712210Z at org.keycloak.services.DefaultKeycloakSession.closeTransactionManager(DefaultKeycloakSession.java:396)
2025-04-14T15:35:26.0712903Z at org.keycloak.services.DefaultKeycloakSession.close(DefaultKeycloakSession.java:361)
2025-04-14T15:35:26.0713700Z at org.keycloak.models.KeycloakBeanProducer_ProducerMethod_getKeycloakSession_XoSEUTXOsE3bpqXlGMAykCiECUM_ClientProxy.close(Unknown Source)
2025-04-14T15:35:26.0714798Z at org.keycloak.quarkus.runtime.transaction.TransactionalSessionHandler.close(TransactionalSessionHandler.java:60)
2025-04-14T15:35:26.0715628Z at org.keycloak.quarkus.runtime.integration.jaxrs.CloseSessionFilter.closeSession(CloseSessionFilter.java:67)
2025-04-14T15:35:26.0716408Z at org.keycloak.quarkus.runtime.integration.jaxrs.CloseSessionFilter.filter(CloseSessionFilter.java:63)
2025-04-14T15:35:26.0717249Z at org.jboss.resteasy.reactive.server.handlers.ResourceResponseFilterHandler.handle(ResourceResponseFilterHandler.java:25)
2025-04-14T15:35:26.0718289Z at io.quarkus.resteasy.reactive.server.runtime.QuarkusResteasyReactiveRequestContext.invokeHandler(QuarkusResteasyReactiveRequestContext.java:150)
2025-04-14T15:35:26.0719310Z at org.jboss.resteasy.reactive.common.core.AbstractResteasyReactiveContext.run(AbstractResteasyReactiveContext.java:147)
2025-04-14T15:35:26.0720051Z at io.quarkus.vertx.core.runtime.VertxCoreRecorder$15.runWith(VertxCoreRecorder.java:638)
2025-04-14T15:35:26.0720663Z at org.jboss.threads.EnhancedQueueExecutor$Task.doRunWith(EnhancedQueueExecutor.java:2675)
2025-04-14T15:35:26.0721258Z at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2654)
2025-04-14T15:35:26.0722123Z at org.jboss.threads.EnhancedQueueExecutor.runThreadBody(EnhancedQueueExecutor.java:1627)
2025-04-14T15:35:26.0722751Z at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1594)
2025-04-14T15:35:26.0723309Z at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:11)
2025-04-14T15:35:26.0723873Z at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:11)
2025-04-14T15:35:26.0724503Z at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
2025-04-14T15:35:26.0724981Z at java.base/java.lang.Thread.run(Thread.java:1583)
2025-04-14T15:35:26.0726086Z Caused by: org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1; statement executed: update CREDENTIAL set CREATED_DATE=?,CREDENTIAL_DATA=?,PRIORITY=?,SALT=?,SECRET_DATA=?,TYPE=?,USER_ID=?,USER_LABEL=?,VERSION=? where ID=? and VERSION=?
2025-04-14T15:35:26.0727267Z at org.hibernate.jdbc.Expectations.checkBatched(Expectations.java:80)
2025-04-14T15:35:26.0727764Z at org.hibernate.jdbc.Expectation$RowCount.verifyOutcome(Expectation.java:174)
2025-04-14T15:35:26.0728415Z at org.hibernate.engine.jdbc.batch.internal.BatchImpl.checkRowCounts(BatchImpl.java:319)
2025-04-14T15:35:26.0729066Z at org.hibernate.engine.jdbc.batch.internal.BatchImpl.lambda$performExecution$2(BatchImpl.java:285)
2025-04-14T15:35:26.0729964Z at org.hibernate.engine.jdbc.mutation.internal.PreparedStatementGroupSingleTable.forEachStatement(PreparedStatementGroupSingleTable.java:67)
2025-04-14T15:35:26.0730833Z at org.hibernate.engine.jdbc.batch.internal.BatchImpl.performExecution(BatchImpl.java:264)
2025-04-14T15:35:26.0731612Z at org.hibernate.engine.jdbc.batch.internal.BatchImpl.execute(BatchImpl.java:242)
2025-04-14T15:35:26.0732303Z at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.executeBatch(JdbcCoordinatorImpl.java:188)
2025-04-14T15:35:26.0732929Z at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:674)
2025-04-14T15:35:26.0733451Z at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:511)
2025-04-14T15:35:26.0734308Z at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:414)
2025-04-14T15:35:26.0735126Z at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:41)
2025-04-14T15:35:26.0735939Z at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:127)
2025-04-14T15:35:26.0736628Z at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1429)
2025-04-14T15:35:26.0736978Z ... 38 more
2025-04-14T15:35:26.0737200Z
2025-04-14T15:35:26.0737763Z 2025-04-14 15:35:18,682 ERROR [org.keycloak.services.error.KeycloakErrorHandler] (executor-thread-2) Uncaught server error: org.keycloak.models.ModelException: Database operation failed
2025-04-14T15:35:26.0738762Z at org.keycloak.connections.jpa.PersistenceExceptionConverter.convert(PersistenceExceptionConverter.java:106)
2025-04-14T15:35:26.0739501Z at org.keycloak.connections.jpa.JpaExceptionConverter.convert(JpaExceptionConverter.java:31)
2025-04-14T15:35:26.0740210Z at org.keycloak.transaction.JtaTransactionWrapper.lambda$handleException$0(JtaTransactionWrapper.java:77)
2025-04-14T15:35:26.0740876Z at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
2025-04-14T15:35:26.0741615Z at java.base/java.util.HashMap$ValueSpliterator.forEachRemaining(HashMap.java:1787)
2025-04-14T15:35:26.0742294Z at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
2025-04-14T15:35:26.0742878Z at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
2025-04-14T15:35:26.0743486Z at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
2025-04-14T15:35:26.0744100Z at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
2025-04-14T15:35:26.0744689Z at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
2025-04-14T15:35:26.0745244Z at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
2025-04-14T15:35:26.0745877Z at org.keycloak.transaction.JtaTransactionWrapper.handleException(JtaTransactionWrapper.java:79)
2025-04-14T15:35:26.0746543Z at org.keycloak.transaction.JtaTransactionWrapper.commit(JtaTransactionWrapper.java:104)
2025-04-14T15:35:26.0747335Z at org.keycloak.services.DefaultKeycloakTransactionManager.lambda$commitWithTracing$0(DefaultKeycloakTransactionManager.java:169)
2025-04-14T15:35:26.0748085Z at org.keycloak.tracing.NoopTracingProvider.trace(NoopTracingProvider.java:59)
2025-04-14T15:35:26.0748634Z at org.keycloak.tracing.NoopTracingProvider.trace(NoopTracingProvider.java:69)
2025-04-14T15:35:26.0749361Z at org.keycloak.services.DefaultKeycloakTransactionManager.commitWithTracing(DefaultKeycloakTransactionManager.java:168)
2025-04-14T15:35:26.0750224Z at org.keycloak.services.DefaultKeycloakTransactionManager.commit(DefaultKeycloakTransactionManager.java:136)
2025-04-14T15:35:26.0751013Z at org.keycloak.services.DefaultKeycloakSession.closeTransactionManager(DefaultKeycloakSession.java:396)
2025-04-14T15:35:26.0751929Z at org.keycloak.services.DefaultKeycloakSession.close(DefaultKeycloakSession.java:361)
2025-04-14T15:35:26.0752727Z at org.keycloak.models.KeycloakBeanProducer_ProducerMethod_getKeycloakSession_XoSEUTXOsE3bpqXlGMAykCiECUM_ClientProxy.close(Unknown Source)
2025-04-14T15:35:26.0753652Z at org.keycloak.quarkus.runtime.transaction.TransactionalSessionHandler.close(TransactionalSessionHandler.java:60)
2025-04-14T15:35:26.0754479Z at org.keycloak.quarkus.runtime.integration.jaxrs.CloseSessionFilter.closeSession(CloseSessionFilter.java:67)
2025-04-14T15:35:26.0755259Z at org.keycloak.quarkus.runtime.integration.jaxrs.CloseSessionFilter.filter(CloseSessionFilter.java:63)
2025-04-14T15:35:26.0756096Z at org.jboss.resteasy.reactive.server.handlers.ResourceResponseFilterHandler.handle(ResourceResponseFilterHandler.java:25)
2025-04-14T15:35:26.0757280Z at io.quarkus.resteasy.reactive.server.runtime.QuarkusResteasyReactiveRequestContext.invokeHandler(QuarkusResteasyReactiveRequestContext.java:150)
2025-04-14T15:35:26.0758312Z at org.jboss.resteasy.reactive.common.core.AbstractResteasyReactiveContext.run(AbstractResteasyReactiveContext.java:147)
2025-04-14T15:35:26.0759054Z at io.quarkus.vertx.core.runtime.VertxCoreRecorder$15.runWith(VertxCoreRecorder.java:638)
2025-04-14T15:35:26.0759658Z at org.jboss.threads.EnhancedQueueExecutor$Task.doRunWith(EnhancedQueueExecutor.java:2675)
2025-04-14T15:35:26.0760253Z at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2654)
2025-04-14T15:35:26.0760964Z at org.jboss.threads.EnhancedQueueExecutor.runThreadBody(EnhancedQueueExecutor.java:1627)
2025-04-14T15:35:26.0761794Z at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1594)
2025-04-14T15:35:26.0762356Z at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:11)
2025-04-14T15:35:26.0762922Z at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:11)
2025-04-14T15:35:26.0763561Z at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
2025-04-14T15:35:26.0764045Z at java.base/java.lang.Thread.run(Thread.java:1583)
2025-04-14T15:35:26.0765145Z Caused by: org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1; statement executed: update CREDENTIAL set CREATED_DATE=?,CREDENTIAL_DATA=?,PRIORITY=?,SALT=?,SECRET_DATA=?,TYPE=?,USER_ID=?,USER_LABEL=?,VERSION=? where ID=? and VERSION=?
2025-04-14T15:35:26.0766320Z at org.hibernate.jdbc.Expectations.checkBatched(Expectations.java:80)
2025-04-14T15:35:26.0766820Z at org.hibernate.jdbc.Expectation$RowCount.verifyOutcome(Expectation.java:174)
2025-04-14T15:35:26.0767394Z at org.hibernate.engine.jdbc.batch.internal.BatchImpl.checkRowCounts(BatchImpl.java:319)
2025-04-14T15:35:26.0768039Z at org.hibernate.engine.jdbc.batch.internal.BatchImpl.lambda$performExecution$2(BatchImpl.java:285)
2025-04-14T15:35:26.0768939Z at org.hibernate.engine.jdbc.mutation.internal.PreparedStatementGroupSingleTable.forEachStatement(PreparedStatementGroupSingleTable.java:67)
2025-04-14T15:35:26.0769811Z at org.hibernate.engine.jdbc.batch.internal.BatchImpl.performExecution(BatchImpl.java:264)
2025-04-14T15:35:26.0770416Z at org.hibernate.engine.jdbc.batch.internal.BatchImpl.execute(BatchImpl.java:242)
2025-04-14T15:35:26.0771061Z at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.executeBatch(JdbcCoordinatorImpl.java:188)
2025-04-14T15:35:26.0771798Z at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:674)
2025-04-14T15:35:26.0772320Z at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:511)
2025-04-14T15:35:26.0773037Z at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:414)
2025-04-14T15:35:26.0773847Z at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:41)
2025-04-14T15:35:26.0774669Z at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:127)
2025-04-14T15:35:26.0775358Z at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1429)
2025-04-14T15:35:26.0775835Z at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:491)
2025-04-14T15:35:26.0776423Z at org.hibernate.internal.SessionImpl.flushBeforeTransactionCompletion(SessionImpl.java:2354)
2025-04-14T15:35:26.0777078Z at org.hibernate.internal.SessionImpl.beforeTransactionCompletion(SessionImpl.java:1978)
2025-04-14T15:35:26.0777831Z at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.beforeTransactionCompletion(JdbcCoordinatorImpl.java:439)
2025-04-14T15:35:26.0779031Z at org.hibernate.resource.transaction.backend.jta.internal.JtaTransactionCoordinatorImpl.beforeCompletion(JtaTransactionCoordinatorImpl.java:336)
2025-04-14T15:35:26.0780615Z at org.hibernate.resource.transaction.backend.jta.internal.synchronization.SynchronizationCallbackCoordinatorNonTrackingImpl.beforeCompletion(SynchronizationCallbackCoordinatorNonTrackingImpl.java:47)
2025-04-14T15:35:26.0782207Z at org.hibernate.resource.transaction.backend.jta.internal.synchronization.RegisteredSynchronization.beforeCompletion(RegisteredSynchronization.java:37)
2025-04-14T15:35:26.0783276Z at com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.beforeCompletion(SynchronizationImple.java:52)
2025-04-14T15:35:26.0784097Z at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.beforeCompletion(TwoPhaseCoordinator.java:348)
2025-04-14T15:35:26.0784912Z at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:66)
2025-04-14T15:35:26.0785464Z at com.arjuna.ats.arjuna.AtomicAction.commit(AtomicAction.java:135)
2025-04-14T15:35:26.0786142Z at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1307)
2025-04-14T15:35:26.0786980Z at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:104)
2025-04-14T15:35:26.0787745Z at io.quarkus.narayana.jta.runtime.NotifyingTransactionManager.commit(NotifyingTransactionManager.java:70)
2025-04-14T15:35:26.0788448Z at org.keycloak.transaction.JtaTransactionWrapper.commit(JtaTransactionWrapper.java:102)
2025-04-14T15:35:26.0788879Z ... 23 more
2025-04-14T15:35:26.0788989Z
(and many more of the same stacktraces)
Version
26.2.0
Regression
- The issue is a regression
Expected behavior
Authentication requests should succeed and return a valid JSON response.
Actual behavior
Authentication requests can return an error like:
{
"error": "unknown_error",
"error_description": "For more on this error consult the server log."
}
How to Reproduce?
See above. It's hard to reproduce on a fast system, but consistently happened for us when running on a GitHub Actions VM (with limited resources).
[EDIT: I managed to trigger the issue locally as well, by running the Keycloak Docker container with just one CPU core (--cpuset
).]
Anything else?
No response