Workflow transition button missing for some users


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

In the multi-node cluster, some users complain that they can't view the workflow options after some maintenance activity.

Environment

Jira 8.x , 9.x

Diagnosis

In one of the cluster Nodes ( Node 1 ), the below error was found in the atlassian-jira.log 

2023-03-10 07:25:07,460+0000 http-nio-8080-exec-745 ERROR test@example.com 445x4426443x1 133vzrm 10.122.6.123,10.198.12.138 /browse/ABC-38 [c.a.jira.workflow.DefaultOSWorkflowConfigurator] Could not load class 'com.onresolve.jira.groovy.GroovyCondition'
java.lang.ClassNotFoundException: com.onresolve.jira.groovy.GroovyCondition
	at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1420)
	at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1228)
	at com.atlassian.core.util.ClassLoaderUtils.loadClass(ClassLoaderUtils.java:79)
	at com.atlassian.core.util.ClassLoaderUtils.loadClass(ClassLoaderUtils.java:48)
	at com.atlassian.jira.workflow.DefaultOSWorkflowConfigurator$LegacyJiraTypeResolver.loadObject(DefaultOSWorkflowConfigurator.java:153)
	at com.opensymphony.workflow.TypeResolver.getCondition(TypeResolver.java:73)
	at com.atlassian.jira.workflow.DefaultOSWorkflowConfigurator$JiraTypeResolverDelegator.getCondition(DefaultOSWorkflowConfigurator.java:106)
	at com.opensymphony.workflow.AbstractWorkflow.passesCondition(AbstractWorkflow.java:1041)
	at com.opensymphony.workflow.AbstractWorkflow.passesConditions(AbstractWorkflow.java:1083)
	at com.opensymphony.workflow.AbstractWorkflow.passesConditions(AbstractWorkflow.java:1107)
	at com.opensymphony.workflow.AbstractWorkflow.getAvailableActions(AbstractWorkflow.java:106)
	at com.atlassian.jira.workflow.IssueWorkflowManagerImpl.getAvailableActionIds(IssueWorkflowManagerImpl.java:166)
	at com.atlassian.jira.workflow.IssueWorkflowManagerImpl.getAvailableActions(IssueWorkflowManagerImpl.java:57)
	at com.atlassian.jira.workflow.IssueWorkflowManagerImpl.getSortedAvailableActions(IssueWorkflowManagerImpl.java:87)
	at com.atlassian.jira.workflow.IssueWorkflowManagerImpl.getSortedAvailableActions(IssueWorkflowManagerImpl.java:82)
	at com.atlassian.jira.issue.transitions.TransitionLinkFactory.getAvailableActions(TransitionLinkFactory.java:53)
	at com.atlassian.jira.issue.transitions.TransitionLinkFactory.getItems(TransitionLinkFactory.java:43)
	at com.atlassian.plugin.web.DefaultWebInterfaceManager.getDynamicWebItems(DefaultWebInterfaceManager.java:249)
	at com.atlassian.plugin.web.DefaultWebInterfaceManager.getDisplayableWebItems(DefaultWebInterfaceManager.java:232)
	at com.atlassian.jira.plugin.webfragment.DefaultSimpleLinkManager.getLinksForSection(DefaultSimpleLinkManager.java:120)
	at com.atlassian.jira.plugin.webfragment.ThreadLocalCachingSimpleLinkManager.access$701(ThreadLocalCachingSimpleLinkManager.java:28)
	at com.atlassian.jira.plugin.webfragment.ThreadLocalCachingSimpleLinkManager$3.load(ThreadLocalCachingSimpleLinkManager.java:149)
	at com.atlassian.jira.plugin.webfragment.ThreadLocalCachingSimpleLinkManager$3.load(ThreadLocalCachingSimpleLinkManager.java:146)
	at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3528)
	at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2277)
	at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2154)
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2044)
	at com.google.common.cache.LocalCache.get(LocalCache.java:3952)
	at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3974)
	at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4958)
	at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4964)
	at com.atlassian.jira.plugin.webfragment.ThreadLocalCachingSimpleLinkManager.getLinksForSection(ThreadLocalCachingSimpleLinkManager.java:153)
	at com.atlassian.jira.plugin.webfragment.ThreadLocalCachingSimpleLinkManager.getLinksForSection(ThreadLocalCachingSimpleLinkManager.java:140)
	... 2 filtered
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26)
	at com.sun.proxy.$Proxy558.getLinksForSection(Unknown Source)
	... 2 filtered

The issue pointed to a specific plugin, "Adaptavist ScriptRunner for JIRA."

Cause

The below plugin was disabled on (in this case) Node 1, and users were facing issues when they connected to Node 1. 

  <plugin>
      <key>com.onresolve.jira.groovy.groovyrunner</key>
      <name>Adaptavist ScriptRunner for JIRA</name>
      <version>7.12.0</version>
      <vendor>Adaptavist.com Ltd</vendor>
      <status>DISABLED</status>
      <vendor-url>http://www.adaptavist.com</vendor-url>
      <framework-version>2</framework-version>
      <bundled>User installed</bundled>
    </plugin>

The plugin was enabled on the other nodes (i.e. Node 2). Hence, users were not facing when they connected with any of those nodes.

    <plugin>
      <key>com.onresolve.jira.groovy.groovyrunner</key>
      <name>Adaptavist ScriptRunner for JIRA</name>
      <version>7.12.0</version>
      <vendor>Adaptavist.com Ltd</vendor>
      <status>ENABLED</status>
      <vendor-url>http://www.adaptavist.com</vendor-url>
      <framework-version>2</framework-version>
      <bundled>User installed</bundled>
    </plugin>

(info) Typically, the plugin state should be the same across the node. However, we may result in such a situation due to local plugin cache issues/corruption. 

Solution

Clear the local plugin cache and restart the node (in this case Node 1) where the plugin was disabled, and make sure the plugin is enabled on both nodes. 

(warning) If the issue is not resolved, don't hesitate to contact Atlassian Support via this link for further investigation.

Last modified on Apr 3, 2023

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.