java.lang.IllegalStateException: Project type with key service_desk is not available for user

Symptoms:

For Configuration Manager version 6.5.1 or later the following error appears:


For Configuration Manager versions older than 6.5.1, during snapshot deployment, the following error appears:

java.util.concurrent.ExecutionException: com.botronsoft.jira.rollout.impl.merge.MergeException: Unable to apply change 'type: addition, object: JiraConfigurationRoot#root/JiraProject#XXXX, target object: JiraConfigurationRoot#root, feature: projects'
	at java.util.concurrent.FutureTask.report(FutureTask.java:122)
	at java.util.concurrent.FutureTask.get(FutureTask.java:192)
	at com.botronsoft.jira.rollout.impl.jobs.AbstractProgressMonitor.getResult(AbstractProgressMonitor.java:48)
	at com.botronsoft.jira.rollout.rest.internal.DeploymentResource.createResponse(DeploymentResource.java:361)
	at com.botronsoft.jira.rollout.rest.internal.DeploymentResource.getDeploymentOperation(DeploymentResource.java:289)
	... 3 filtered
	at java.lang.reflect.Method.invoke(Method.java:498)
	... 19 filtered
	at com.atlassian.plugins.rest.module.RestDelegatingServletFilter$JerseyOsgiServletContainer.doFilter(RestDelegatingServletFilter.java:154)
	... 1 filtered
	at com.atlassian.plugins.rest.module.RestDelegatingServletFilter.doFilter(RestDelegatingServletFilter.java:68)
	... 32 filtered
	at com.atlassian.servicedesk.internal.web.ExternalCustomerLockoutFilter.doFilter(ExternalCustomerLockoutFilter.java:56)
	... 8 filtered
	at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
	... 42 filtered
	at com.resolution.atlasplugins.samlsso.servlet.RedirectToSsoFilter.doFilter(RedirectToSsoFilter.java:52)
	... 3 filtered
	at com.candylio.jira.plugins.csat.filters.ServiceDeskAnonymousAccessFilter.doFilter(ServiceDeskAnonymousAccessFilter.java:36)
	... 15 filtered
	at com.atlassian.jira.security.JiraSecurityFilter.lambda$doFilter$0(JiraSecurityFilter.java:80)
	... 1 filtered
	at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:78)
	... 16 filtered
	at com.atlassian.plugins.rest.module.servlet.RestSeraphFilter.doFilter(RestSeraphFilter.java:37)
	... 20 filtered
	at com.atlassian.jira.servermetrics.CorrelationIdPopulatorFilter.doFilter(CorrelationIdPopulatorFilter.java:30)
	... 5 filtered
	at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.lambda$invokeFilterChain$0(CustomerContextSettingFilter.java:181)
	at com.atlassian.servicedesk.internal.utils.context.ReentrantThreadLocalBasedCodeContext.rteInvoke(ReentrantThreadLocalBasedCodeContext.java:134)
	at com.atlassian.servicedesk.internal.utils.context.ReentrantThreadLocalBasedCodeContext.runOutOfContext(ReentrantThreadLocalBasedCodeContext.java:87)
	at com.atlassian.servicedesk.internal.utils.context.CustomerContextServiceImpl.runOutOfCustomerContext(CustomerContextServiceImpl.java:64)
	at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.outOfCustomerContext(CustomerContextSettingFilter.java:174)
	at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilterImpl(CustomerContextSettingFilter.java:130)
	at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilter(CustomerContextSettingFilter.java:121)
	... 4 filtered
	at com.atlassian.jwt.internal.servlet.JwtAuthFilter.doFilter(JwtAuthFilter.java:32)
	... 8 filtered
	at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
	... 4 filtered
	at com.atlassian.web.servlet.plugin.LocationCleanerFilter.doFilter(LocationCleanerFilter.java:36)
	... 29 filtered
	at com.atlassian.jira.servermetrics.MetricsCollectorFilter.doFilter(MetricsCollectorFilter.java:25)
	... 28 filtered
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:745)
Caused by: com.botronsoft.jira.rollout.impl.merge.MergeException: Unable to apply change 'type: addition, object: JiraConfigurationRoot#root/JiraProject#XXXX, target object: JiraConfigurationRoot#root, feature: projects'
	at com.botronsoft.jira.rollout.impl.merge.AbstractMergeAdapter.notifyChanged(AbstractMergeAdapter.java:76)
	at com.botronsoft.jira.rollout.impl.merge.di.CacheRefreshInterceptor.invoke(CacheRefreshInterceptor.java:30)
	at com.botronsoft.jira.rollout.impl.merge.MainMergeAdapter.notifyChanged(MainMergeAdapter.java:61)
	at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:374)
	at org.eclipse.emf.ecore.util.EcoreEList.dispatchNotification(EcoreEList.java:249)
	at org.eclipse.emf.compare.merge.AbstractMerger.addAt(AbstractMerger.java:180)
	at com.botronsoft.jira.rollout.model.diff.AtomicityAwareReferenceMerger.addInTarget(AtomicityAwareReferenceMerger.java:96)
	at org.eclipse.emf.compare.merge.ReferenceChangeMerger.copyLeftToRight(ReferenceChangeMerger.java:78)
	at org.eclipse.emf.compare.merge.AbstractMerger.mergeDiff(AbstractMerger.java:132)
	at org.eclipse.emf.compare.merge.AbstractMerger.mergeRequires(AbstractMerger.java:111)
	at org.eclipse.emf.compare.merge.ReferenceChangeMerger.copyLeftToRight(ReferenceChangeMerger.java:73)
	at org.eclipse.emf.compare.merge.BatchMerger.copyAllLeftToRight(BatchMerger.java:97)
	at com.botronsoft.jira.rollout.impl.JiraConfigurationServiceImpl.importConfiguration(JiraConfigurationServiceImpl.java:336)
	at com.botronsoft.jira.rollout.jobs.DeploymentJob.call(DeploymentJob.java:100)
	at com.botronsoft.jira.rollout.jobs.DeploymentJob.call(DeploymentJob.java:38)
	at com.botronsoft.jira.rollout.impl.jobs.JobSchedulingServiceImpl$ClusterTask.call(JobSchedulingServiceImpl.java:55)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	... 1 more
Caused by: com.botronsoft.jira.rollout.impl.merge.MergeException: Project type with key service_desk is not available for user admin(admin)
	at com.botronsoft.jira.rollout.impl.merge.ConfigurationRootMergeAdapter.addProject(ConfigurationRootMergeAdapter.java:352)
	at com.botronsoft.jira.rollout.impl.merge.di.CacheRefreshInterceptor.invoke(CacheRefreshInterceptor.java:30)
	at com.botronsoft.jira.rollout.impl.merge.ConfigurationRootMergeAdapter.addFeature(ConfigurationRootMergeAdapter.java:158)
	at com.botronsoft.jira.rollout.impl.merge.ConfigurationRootMergeAdapter.addFeature(ConfigurationRootMergeAdapter.java:121)
	at com.botronsoft.jira.rollout.impl.merge.AbstractMergeAdapter.notifyChanged(AbstractMergeAdapter.java:65)
Caused by: java.lang.IllegalStateException: Project type with key service_desk is not available for user admin(admin)
	at com.botronsoft.jiracompatibility.impl.JiraCompatibility7.validateProjectType(JiraCompatibility7.java:619)
	at com.botronsoft.jiracompatibility.impl.JiraCompatibility7.createProject(JiraCompatibility7.java:151)
	at com.botronsoft.jiracompatibility.impl.JiraCompatibilityFacade.createProject(JiraCompatibilityFacade.java:110)
	at com.botronsoft.jira.rollout.impl.merge.ConfigurationRootMergeAdapter.addProject(ConfigurationRootMergeAdapter.java:349)
	... 24 more



Cause:

This can happen in a few scenarios:

  1. The user doesn’t have sufficient permissions to create a Service Desk project, e.g. he’s not assigned the appropriate application role.
  2. The Service Desk application is not enabled or is not properly licensed on the target JIRA instance.

Resolution:

Fixing the aforementioned should allow the deployment to complete.