Getting a System Error when accessing to Confluence People tab
Platform notice: Server and Data Center only. This article only applies to Atlassian products on the Server and Data Center platforms.
Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Except Fisheye and Crucible
Summary
Confluence People tab throws System Error. This error is generally thrown when any content is referencing a missing user in the database.
Diagnosis
While navigating to the People tab below System Error on Confluence UI is rendered as well as in the application logs below logs can be seen.
2023-08-28 13:28:35,779 ERROR [http-nio-8090-exec-11] [atlassian.confluence.servlet.ConfluenceServletDispatcher] sendError Could not execute action
-- referer: https://xyz.org/ | url: /browsepeople.action | traceId: abcdd09a86e3456 | userName: xyzabc
org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [com.atlassian.confluence.user.ConfluenceUserImpl#8a7e101821b824031003d]
at org.hibernate.boot.internal.StandardEntityNotFoundDelegate.handleEntityNotFound(StandardEntityNotFoundDelegate.java:28)
at org.hibernate.proxy.AbstractLazyInitializer.checkTargetState(AbstractLazyInitializer.java:244)
at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:166)
at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:268)
at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:73)
at com.atlassian.hibernate.adapter.proxy.JavassistLazyInitializer_ImplementV2Proxy.invoke(JavassistLazyInitializer_ImplementV2Proxy.java:70)
at com.atlassian.confluence.user.ConfluenceUserImpl_$$_jvst166_7.getName(ConfluenceUserImpl_$$_jvst166_7.java)
at com.atlassian.confluence.user.PersonalInformation.getUsername(PersonalInformation.java:87)
at com.atlassian.confluence.user.actions.PeopleDirectoryAction.search(PeopleDirectoryAction.java:161)
at com.atlassian.confluence.user.actions.PeopleDirectoryAction.doBrowse(PeopleDirectoryAction.java:130)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
By checking the following query it can help to identify if any content is referencing a missing user in the database
SELECT * FROM CONTENT WHERE contenttype = 'USERINFO' AND username NOT IN (SELECT user_key FROM user_mapping);
If the above SQL query gives any output, it suggests that some content is referencing missing user(s) in the database.
Cause
The reason for this issue is not clear but this is due to users which does not exist in the database but are having a content referring the user.
Solution
To fix this issue delete the content referring to the missing user(s). Follow below steps to fix this issue
- Shutdown Confluence
- Take full backup of Confluence Database
Execute below SQL query to delete the content referring to missing users
DELETE FROM CONTENT WHERE contenttype = 'USERINFO' AND username NOT IN (SELECT user_key FROM user_mapping);
- Start Confluence