Multiple services with name 'JIRA Index Snapshot Service' exist.

Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.

Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. 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

After upgrading the instance, it appears that the index recovery feature is not functioning properly and has not been activated (it is OFF). Even after attempting to activate it by editing the configuration, it remains deactivated.

Environment

9.4.6

Diagnosis

  • Please take a moment to carefully examine the logs for any exceptions that may be relevant to the situation at hand. This will provide valuable insight into any issues that may have arisen and help you identify potential solutions:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ERROR [o.a.c.c.C.[.[localhost].[/].[action]] Servlet.service() for servlet [action] in context with path [] threw exception [java.lang.IllegalArgumentException: Multiple services with name 'JIRA Index Snapshot Service' exist.] with root cause java.lang.IllegalArgumentException: Multiple services with name 'JIRA Index Snapshot Service' exist. at com.atlassian.jira.service.OfBizServiceConfigStore.getServiceConfigForName(OfBizServiceConfigStore.java:151) at com.atlassian.jira.service.DefaultServiceManager.getServiceWithName(DefaultServiceManager.java:188) at com.atlassian.jira.index.ha.DefaultIndexRecoveryService.updateRecoverySettings(DefaultIndexRecoveryService.java:93) at com.atlassian.jira.web.action.admin.index.EditIndexRecoverySettings.doExecute(EditIndexRecoverySettings.java:78) at webwork.action.ActionSupport.execute(ActionSupport.java:165) at com.atlassian.jira.web.action.JiraWebActionSupport.execute(JiraWebActionSupport.java:1364) ... 7 filtered at javax.servlet.http.HttpServlet.service(HttpServlet.java:596) ... 48 filtered at com.intenso.jira.plugins.it.transform.CleanupFilter.doFilter(CleanupFilter.java:21) ... 3 filtered at com.atlassian.servicedesk.internal.web.ExternalCustomerLockoutFilter.doFilter(ExternalCustomerLockoutFilter.java:55) ... 4 filtered at com.atlassian.greenhopper.jira.filters.ClassicBoardRouter.doFilter(ClassicBoardRouter.java:56) ... 7 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:54) ... 8 filtered at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21) ... 48 filtered at com.almworks.structure.gantt.checker.GanttCheckerFilter.doFilter(GanttCheckerFilter.kt:17) It looks like, you might have duplicate entries in your DB for the service JIRA Index Snapshot Service.

Cause

  • It is important to double-check the database query when encountering the mentioned exception in order to retrieve both IDs accurately. This will help ensure that the system functions properly and any issues are resolved efficiently:

Ensure the index snapshot service is functioning correctly and returning one row as expected.

1 select id from serviceconfig where servicename like '%Index Snapshot%';

The following are the results of the query for illustrative purposes.

1 2 10300,86400000,"com.atlassian.jira.index.ha.IndexSnapshotService","JIRA Index Snapshot Service","0 15 6 ? * *" 1020301,86400000,"com.atlassian.jira.index.ha.IndexSnapshotService","JIRA Index Snapshot Service","0 0 3 ? * *"
  • Please carefully examine the queries associated with both IDs to gather details about the two ongoing tasks that are causing the problem. We will make any required adjustments to guarantee that the information given is precise and reliable:

Please ensure that the identifier returned in the previous query is checked in the cluster job to guarantee its presence.

1 select * from clusteredjob where job_id like '%JiraService%' and job_id like '%<id>';

For instance, the function is producing two rows for the aforementioned IDs.

1 2 2680183,"com.atlassian.jira.service.JiraService:1020301","com.atlassian.jira.service.DefaultServiceManager","C",NULL,NULL,"0 0 3 ? * *",NULL,1688000400000,68,"binary data" 69534,"com.atlassian.jira.service.JiraService:10300","com.atlassian.jira.service.DefaultServiceManager","C",NULL,NULL,"0 15 6 ? * *",NULL,1688012100000,770,"binary data"

Solution

To resolve the issue, you should select an ID from the serviceconfig table and delete it along with its corresponding row from the cluster job table. This will eliminate the dual entry for the Index snapshot service that is causing the problem.

For Example:

Delete from serviceconfig

1 delete from serviceconfig where id = <id_serviceconfig>; (here id could be 10300 from above data)

Delete from clusterjob

1 delete from clusteredjob where id = <id_clusterjob>; (here corresponding id could be 69534 from above data)

Disclaimer:Updating the database is not recommended and may result in unintended consequences. We advise against making any changes to the database without proper authorization and understanding of the potential impact on system functionality.

Updated on March 20, 2025

Still need help?

The Atlassian Community is here for you.