Hi,

We were executing the 'Update User' API call when the following exception got thrown:
[2016-03-17 07:50:36.0590], DEBUG, org.jboss.resteasy.core.SynchronousDispatcher default task-13 - RESTEASY002315: PathInfo: /admin/realms/xxxx/users/e503cb04-3080-4e90-a4b4-80adcd46b81c
[2016-03-17 07:50:36.0590], DEBUG, org.keycloak.services.managers.AuthenticationManager default task-13 - token active - active: true, issued-at: 1,458,201,036, not-before: 0
[2016-03-17 07:50:36.0590], DEBUG, org.keycloak.services.resources.admin.AdminRoot default task-13 - authenticated admin access for: superuser
[2016-03-17 07:50:36.0591], DEBUG, org.keycloak.services.resources.Cors default task-13 - No origin returning
[2016-03-17 07:50:36.0636], DEBUG, org.infinispan.interceptors.InvalidationInterceptor default task-13 - Cache [localhost] replicating InvalidateCommand{keys=[e503cb04-3080-4e90-a4b4-80adcd46b81c]}
[2016-03-17 07:50:36.0637], ERROR, org.keycloak.services.resources.ModelExceptionMapper default task-13 - javax.persistence.OptimisticLockException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1: org.keycloak.models.ModelException: javax.persistence.OptimisticLockException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
    at org.keycloak.connections.jpa.PersistenceExceptionConverter.convert(PersistenceExceptionConverter.java:61)
    at org.keycloak.connections.jpa.JpaKeycloakTransaction.commit(JpaKeycloakTransaction.java:47)
    at org.keycloak.services.DefaultKeycloakTransactionManager.commit(DefaultKeycloakTransactionManager.java:95)
    at org.keycloak.services.resources.admin.UsersResource.updateUser(UsersResource.java:170)
    at sun.reflect.GeneratedMethodAccessor435.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:139)
    at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:295)
    at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:249)
    at org.jboss.resteasy.core.ResourceLocatorInvoker.invokeOnTargetObject(ResourceLocatorInvoker.java:138)
    at org.jboss.resteasy.core.ResourceLocatorInvoker.invoke(ResourceLocatorInvoker.java:107)
We're using a clustered Infinispan system as our cache. This error doesn't get thrown often, nor can we point out a specific scenario. However, we have now seen this a few times. What could be the reason for this?


Regards,
Lohitha.