java.lang.IllegalStateException: Project type with key software 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 software 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 software 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 Software project, e.g. he’s not assigned the appropriate application role.
  2. The JIRA Software application is not enabled or is not properly licensed on the target JIRA instance.

Resolution:

Fixing the aforementioned should allow the deployment to complete.