Receiving error "Something went wrong. Contact administrator" when attempting to access Insight menus in Jira
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
As a Jira admin, you may face problems when attempting to access any Insight option from the top menu or when attempting to create an Object Schema, presented by this error message on the top right:
- "Something went wrong. Contact Administrator"
The same error is presented when clicking on "Get started" for Insight under the Manage Apps area.
This error may also present itself as lack of appropriate permissions:
Make sure you've reviewed roles and permissions beforehand, if possible. Permission problems are more likely to be caused by misconfiguration. For reference, see Configuring roles and permission for Insight
Environment
8.20.1 (upgraded from 8.9.0)
Database Version: MySQL - 5.7.36
Diagnosis
You may run the following DB queries against "AO_8542F1_IFJ_ICON" and "AO_8542F1_IFJ_ROLE" to look for the entry with ID = 0:
mysql> select * from AO_8542F1_IFJ_ICON where ID = 0;
+-----+----------------------+------------------+---------+--------------------------------------+
| ID | NAME | OBJECT_SCHEMA_ID | TYPE_ID | UUID |
+-----+----------------------+------------------+---------+--------------------------------------+
| 0 | NULL | NULL | 0 | NULL |
+-----+----------------------+------------------+---------+--------------------------------------+
mysql> select * from AO_8542F1_IFJ_ROLE where ID = 0;
+-------------+----+------+------------------+----------------+----------------------------------+
| DESCRIPTION | ID | NAME | OBJECT_SCHEMA_ID | OBJECT_TYPE_ID | TYPE |
+-------------+----+------+------------------+----------------+----------------------------------+
| NULL | 0 | NULL | NULL | NULL | NULL |
+-------------+----+------+------------------+----------------+----------------------------------+
Also, logs may show stack traces with NullPointerException similar to these:
- Related to the "AO_8542F1_IFJ_ICON" table:
2021-11-17 15:59:15,675-0600 http-nio-8080-exec-5 url: /rest/insight/1.0/global/config; user: CuretonR1 ERROR CuretonR1 959x1679335x2 81xlyu 10.49.3.109,127.0.0.1 /rest/insight/1.0/global/config [c.r.j.p.i.c.w.a.r.exception.mapper.DefaultMapper] Unexpe
cted exception was thrown while processing the request
java.lang.NullPointerException
at com.riadalabs.jira.plugins.insight.channel.web.api.rest.services.icon.IconAssembler.assembleIconEntry(IconAssembler.java:35)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.base/java.util.stream.ReferencePipeline.collect(Unknown Source)
at com.riadalabs.jira.plugins.insight.channel.web.api.rest.services.globalconfiguration.GlobalConfigurationAssembler.assembleGlobalConfigurationEntry(GlobalConfigurationAssembler.java:89)
at com.riadalabs.jira.plugins.insight.channel.web.api.rest.services.globalconfiguration.GlobalConfigurationResource.getConfig(GlobalConfigurationResource.java:68)
at jdk.internal.reflect.GeneratedMethodAccessor1352.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
... 19 filtered
at com.atlassian.plugins.rest.module.RestDelegatingServletFilter$JerseyOsgiServletContainer.doFilter(RestDelegatingServletFilter.java:160)
... 1 filtered
at com.atlassian.plugins.rest.module.RestDelegatingServletFilter.doFilter(RestDelegatingServletFilter.java:70)
... 32 filtered
at com.atlassian.servicedesk.internal.web.ExternalCustomerLockoutFilter.doFilter(ExternalCustomerLockoutFilter.java:55)
... 8 filtered
at com.atlassian.jira.plugin.mobile.web.filter.MobileAppRequestFilter.doFilter(MobileAppRequestFilter.java:59)
... 4 filtered
at com.atlassian.jira.plugin.mobile.login.MobileLoginSuccessFilter.doFilter(MobileLoginSuccessFilter.java:54)
... 3 filtered
at com.atlassian.diagnostics.internal.platform.monitor.http.HttpRequestMonitoringFilter.doFilter(HttpRequestMonitoringFilter.java:55)
... 8 filtered
at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
... 20 filtered
at org.kantega.atlaskerb.AtlasKerberosFilter.doFilter(AtlasKerberosFilter.java:128)
... 3 filtered
at org.kantega.atlaskerb.AtlasKerberosFilter.doFilter(AtlasKerberosFilter.java:128)
... 26 filtered
at com.atlassian.ratelimiting.internal.filter.RateLimitFilter.doFilter(RateLimitFilter.java:73)
... 3 filtered
at com.atlassian.troubleshooting.thready.filter.AbstractThreadNamingFilter.doFilter(AbstractThreadNamingFilter.java:46)
... 17 filtered
at com.atlassian.jira.security.JiraSecurityFilter.lambda$doFilter$0(JiraSecurityFilter.java:66)
... 1 filtered
at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:64)
... 16 filtered
at com.atlassian.plugins.rest.module.servlet.RestSeraphFilter.doFilter(RestSeraphFilter.java:38)
... 3 filtered
at com.atlassian.pats.web.filter.TokenBasedAuthenticationFilter.doFilter(TokenBasedAuthenticationFilter.java:83)
... 7 filtered
at org.kantega.atlaskerb.AtlasKerberosFilter.doFilter(AtlasKerberosFilter.java:128)
... 3 filtered
at org.kantega.atlaskerb.AtlasKerberosFilter.doFilter(AtlasKerberosFilter.java:128)
... 3 filtered
at org.kantega.atlaskerb.AtlasKerberosFilter.doFilter(AtlasKerberosFilter.java:225)
... 3 filtered
at org.kantega.atlaskerb.AtlasKerberosPreFilter.doFilter(AtlasKerberosPreFilter.java:96)
... 3 filtered
at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.lambda$invokeFilterChain$0(CustomerContextSettingFilter.java:215)
at com.atlassian.servicedesk.internal.api.util.context.ReentrantThreadLocalBasedCodeContext.rteInvoke(ReentrantThreadLocalBasedCodeContext.java:136)
at com.atlassian.servicedesk.internal.api.util.context.ReentrantThreadLocalBasedCodeContext.runOutOfContext(ReentrantThreadLocalBasedCodeContext.java:89)
at com.atlassian.servicedesk.internal.utils.context.CustomerContextServiceImpl.runOutOfCustomerContext(CustomerContextServiceImpl.java:47)
at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.outOfCustomerContext(CustomerContextSettingFilter.java:206)
at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilterImpl(CustomerContextSettingFilter.java:134)
at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilter(CustomerContextSettingFilter.java:123)
... 4 filtered
at org.kantega.atlaskerb.AtlasKerberosPreFilter.doFilter(AtlasKerberosPreFilter.java:116)
... 3 filtered
at com.atlassian.jwt.internal.servlet.JwtAuthFilter.doFilter(JwtAuthFilter.java:37)
... 8 filtered
at com.atlassian.ratelimiting.internal.filter.RateLimitPreAuthFilter.doFilter(RateLimitPreAuthFilter.java:71)
... 3 filtered
at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
... 4 filtered
at com.atlassian.troubleshooting.thready.filter.AbstractThreadNamingFilter.doFilter(AbstractThreadNamingFilter.java:46)
... 3 filtered
at com.atlassian.web.servlet.plugin.LocationCleanerFilter.doFilter(LocationCleanerFilter.java:36)
... 26 filtered
at com.atlassian.jira.servermetrics.MetricsCollectorFilter.doFilter(MetricsCollectorFilter.java:25)
... 26 filtered
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Unknown Source)
- Related to the "AO_8542F1_IFJ_ROLE" table:
2021-11-18 10:56:25,458-0600 http-nio-8080-exec-18 url: /rest/insight/1.0/config/role/global; user: xxxxx ERROR xxxxx 656x1810681x1 3krjtc 10.46.24.114,127.0.0.1 /rest/insight/1.0/config/role/global [c.r.j.p.i.services.core.ConfigureServiceImpl]
RuntimeException:null
java.lang.NullPointerException
at com.riadalabs.jira.plugins.insight.services.core.dal.transformation.ActiveObjectsAssemblerImpl.assembleRole(ActiveObjectsAssemblerImpl.java:267)
at com.riadalabs.jira.plugins.insight.services.core.dal.transformation.ActiveObjectsAssemblerImpl.assembleRoles(ActiveObjectsAssemblerImpl.java:291)
at com.riadalabs.jira.plugins.insight.services.core.dal.impl.RoleDalImpl.findGlobalRoles(RoleDalImpl.java:65)
at com.riadalabs.jira.plugins.insight.services.core.ConfigureServiceImpl.findRoleBeans(ConfigureServiceImpl.java:53)
at com.riadalabs.jira.plugins.insight.channel.web.api.rest.services.role.RoleResource.findRoles(RoleResource.java:148)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
... 19 filtered
at com.atlassian.plugins.rest.module.RestDelegatingServletFilter$JerseyOsgiServletContainer.doFilter(RestDelegatingServletFilter.java:160)
... 1 filtered
at com.atlassian.plugins.rest.module.RestDelegatingServletFilter.doFilter(RestDelegatingServletFilter.java:70)
... 32 filtered
at com.atlassian.servicedesk.internal.web.ExternalCustomerLockoutFilter.doFilter(ExternalCustomerLockoutFilter.java:55)
... 8 filtered
at com.atlassian.jira.plugin.mobile.web.filter.MobileAppRequestFilter.doFilter(MobileAppRequestFilter.java:59)
... 4 filtered
at com.atlassian.jira.plugin.mobile.login.MobileLoginSuccessFilter.doFilter(MobileLoginSuccessFilter.java:54)
... 3 filtered
at com.atlassian.diagnostics.internal.platform.monitor.http.HttpRequestMonitoringFilter.doFilter(HttpRequestMonitoringFilter.java:55)
... 8 filtered
at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
... 20 filtered
at org.kantega.atlaskerb.AtlasKerberosFilter.doFilter(AtlasKerberosFilter.java:128)
... 3 filtered
at org.kantega.atlaskerb.AtlasKerberosFilter.doFilter(AtlasKerberosFilter.java:128)
... 26 filtered
at com.atlassian.ratelimiting.internal.filter.RateLimitFilter.doFilter(RateLimitFilter.java:73)
... 3 filtered
at com.atlassian.troubleshooting.thready.filter.AbstractThreadNamingFilter.doFilter(AbstractThreadNamingFilter.java:46)
... 17 filtered
at com.atlassian.jira.security.JiraSecurityFilter.lambda$doFilter$0(JiraSecurityFilter.java:66)
... 1 filtered
at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:64)
... 16 filtered
at com.atlassian.plugins.rest.module.servlet.RestSeraphFilter.doFilter(RestSeraphFilter.java:38)
... 3 filtered
at com.atlassian.pats.web.filter.TokenBasedAuthenticationFilter.doFilter(TokenBasedAuthenticationFilter.java:83)
... 7 filtered
at org.kantega.atlaskerb.AtlasKerberosFilter.doFilter(AtlasKerberosFilter.java:128)
... 3 filtered
at org.kantega.atlaskerb.AtlasKerberosFilter.doFilter(AtlasKerberosFilter.java:128)
... 3 filtered
at org.kantega.atlaskerb.AtlasKerberosFilter.doFilter(AtlasKerberosFilter.java:225)
... 3 filtered
at org.kantega.atlaskerb.AtlasKerberosPreFilter.doFilter(AtlasKerberosPreFilter.java:96)
... 3 filtered
at org.kantega.atlaskerb.AtlasKerberosFilter.doFilter(AtlasKerberosFilter.java:128)
... 15 filtered
at com.atlassian.jira.servermetrics.CorrelationIdPopulatorFilter.doFilter(CorrelationIdPopulatorFilter.java:30)
... 5 filtered
at com.atlassian.plugins.authentication.impl.basicauth.filter.DisableBasicAuthFilter.doFilter(DisableBasicAuthFilter.java:70)
... 3 filtered
at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.lambda$invokeFilterChain$0(CustomerContextSettingFilter.java:215)
at com.atlassian.servicedesk.internal.api.util.context.ReentrantThreadLocalBasedCodeContext.rteInvoke(ReentrantThreadLocalBasedCodeContext.java:136)
at com.atlassian.servicedesk.internal.api.util.context.ReentrantThreadLocalBasedCodeContext.runOutOfContext(ReentrantThreadLocalBasedCodeContext.java:89)
at com.atlassian.servicedesk.internal.utils.context.CustomerContextServiceImpl.runOutOfCustomerContext(CustomerContextServiceImpl.java:47)
at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.outOfCustomerContext(CustomerContextSettingFilter.java:206)
at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilterImpl(CustomerContextSettingFilter.java:134)
at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilter(CustomerContextSettingFilter.java:123)
... 4 filtered
at org.kantega.atlaskerb.AtlasKerberosPreFilter.doFilter(AtlasKerberosPreFilter.java:116)
... 3 filtered
at com.atlassian.jwt.internal.servlet.JwtAuthFilter.doFilter(JwtAuthFilter.java:37)
... 8 filtered
at com.atlassian.ratelimiting.internal.filter.RateLimitPreAuthFilter.doFilter(RateLimitPreAuthFilter.java:71)
... 3 filtered
at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
... 4 filtered
at com.atlassian.troubleshooting.thready.filter.AbstractThreadNamingFilter.doFilter(AbstractThreadNamingFilter.java:46)
... 3 filtered
at com.atlassian.web.servlet.plugin.LocationCleanerFilter.doFilter(LocationCleanerFilter.java:36)
... 26 filtered
at com.atlassian.jira.servermetrics.MetricsCollectorFilter.doFilter(MetricsCollectorFilter.java:25)
... 26 filtered
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Unknown Source)
Cause
The cause of the problem is still unknown. For this reason, it is also undetermined whether this is limited to this version of Jira, Insight, and/or database product.
Solution
To work around the problem, the solution was to delete the invalid records that were causing NPE and restart the instance so Insight could recreate the "AO_8542F1_IFJ_ROLE" table entries.
Steps
1. Delete invalid entries from database (small syntax changes may be required for different database products):
delete from AO_8542F1_IFJ_ICON where ID=0;
delete from AO_8542F1_IFJ_ROLE where ID=0;
2. Restart Jira for "AO_8542F1_IFJ_ROLE" default entries to be recreated by Insight.
After deleting the invalid entry from "AO_8542F1_IFJ_ICON" it still had 213 records left.
For this case, after deleting the invalid records from "AO_8542F1_IFJ_ROLE" the table had no records left.
This was done on a single-node Data Center instance but a rolling restart should work for a multi-node cluster.