Hello,
Some users do not have a username, so changing or deleting it is not possible.
background
The users log in via saml-IdP, which becomes the user
created in keycloack, all attributes are visible, including username. After a while the username is missing, only email, last name and first name are visible.
The Command “bin/kcadm.sh get users -r xxx” lists the users, some have usernames, others don’t.
Delete user: “bin/kcadm.sh delete users/… -r xxx” → “For more on this error consult the server log. [unknown_error]”
keycloak.log:
ERROR [org.keycloak.services.error.KeycloakErrorHandler] (executor-thread-106) Uncaught server error: java.lang.NullPointerException
at java.base/java.util.Objects.requireNonNull(Objects.java:233)
at org.keycloak.models.cache.infinispan.events.UserUpdatedEvent.<init>(UserUpdatedEvent.java:44)
at org.keycloak.models.cache.infinispan.events.UserUpdatedEvent.create(UserUpdatedEvent.java:50)
at org.keycloak.models.cache.infinispan.UserCacheSession.registerUserInvalidation(UserCacheSession.java:128)
at org.keycloak.models.cache.infinispan.UserAdapter.getDelegateForUpdate(UserAdapter.java:105)
at org.keycloak.models.cache.infinispan.UserAdapter.invalidate(UserAdapter.java:120)
at org.keycloak.models.cache.infinispan.UserCacheSession.fullyInvalidateUser(UserCacheSession.java:836)
at org.keycloak.models.cache.infinispan.UserCacheSession.removeUser(UserCacheSession.java:850)
at org.keycloak.models.UserManager.removeUser(UserManager.java:36)
at org.keycloak.models.UserManager.removeUser(UserManager.java:32)
at org.keycloak.services.resources.admin.UserResource.deleteUser(UserResource.java:648)
at org.keycloak.services.resources.admin.UserResource$quarkusrestinvoker$deleteUser_1ab1e247046f32b48fb55de7f71f5540f6c8ea14.invoke(Unknown Source)
at org.jboss.resteasy.reactive.server.handlers.InvocationHandler.handle(InvocationHandler.java:29)
at io.quarkus.resteasy.reactive.server.runtime.QuarkusResteasyReactiveRequestContext.invokeHandler(QuarkusResteasyReactiveRequestContext.java:141)
at org.jboss.resteasy.reactive.common.core.AbstractResteasyReactiveContext.run(AbstractResteasyReactiveContext.java:147)
at io.quarkus.vertx.core.runtime.VertxCoreRecorder$14.runWith(VertxCoreRecorder.java:635)
at org.jboss.threads.EnhancedQueueExecutor$Task.doRunWith(EnhancedQueueExecutor.java:2516)
at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2495)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1521)
at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:11)
at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:11)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:1583)
sure, because username is null.
Does anyone have an idea how I can solve the problem?
regards
Thomas