Instance health tab is showing no data with null pointer exception in logs
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
Instance health tab in Support Tools is showing no information or "The contents of this tab is loading"
Environment
The issue is observed after the upgrade to 7.13.x but it can occur on any version.
Diagnosis
Checking the logs we can see Null pointer exceptions like this one:
2021-10-11 10:18:44,379 ERROR [https-jsse-nio-8443-exec-1704] [ContainerBase.[Standalone].[localhost].[/]] log Unhandled exception occurred whilst decorating page
-- referer: https://<base-url>/plugins/servlet/troubleshooting/view/ | url: /plugins/servlet/troubleshooting/view/atst-detect-issues/view | traceId: 92e3fe287b1e8463 | userName: <user>
java.lang.NullPointerException
at java.base/java.util.Arrays.sort(Unknown Source)
at com.atlassian.troubleshooting.confluence.ConfluenceApplicationInfo.addUpgradeRecoveryFileNames(ConfluenceApplicationInfo.java:378)
at com.atlassian.troubleshooting.confluence.ConfluenceApplicationInfo.internalLoadProperties(ConfluenceApplicationInfo.java:363)
at com.atlassian.troubleshooting.stp.salext.AbstractSupportApplicationInfo.lambda$loadProperties$0(AbstractSupportApplicationInfo.java:185)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at com.atlassian.util.concurrent.ConcurrentOperationMapImpl$CallerRunsFuture.get(ConcurrentOperationMapImpl.java:65)
at com.atlassian.util.concurrent.ConcurrentOperationMapImpl.runOperation(ConcurrentOperationMapImpl.java:52)
at com.atlassian.troubleshooting.stp.salext.AbstractSupportApplicationInfo.loadProperties(AbstractSupportApplicationInfo.java:185)
at com.atlassian.troubleshooting.stp.action.impl.DetectIssuesAction.prepare(DetectIssuesAction.java:46)
at com.atlassian.troubleshooting.stp.servlet.SupportToolsViewServlet.displayResults(SupportToolsViewServlet.java:225)
at com.atlassian.troubleshooting.stp.servlet.SupportToolsViewServlet.doGet(SupportToolsViewServlet.java:131)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:626)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
...
Cause
This issue can occur when Confluence (or any application) is started as a root user. The process will create files that have either incorrect permissions or file ownership. In this particular case, we should check permissions and ownership of these locations:
- <confluence-shared-home>
<confluence-shared-home>/recovery
Solution
Check if Confluence is using a different user than confluence - user.
ps aux | grep confluence
Apply correct Confluence Linux permissions to both locations <confluence-shared-home> and <confluence-shared-home>/recovery and then restart Confluence.