All Workflows are missing in Workflow section under 'Issues' tab from Jira Administration

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

Navigate to Administration → 'Issue' tab → Workflow shows blank page as shown in the screenshot below.

(Auto-migrated image: description temporarily unavailable)

Diagnosis

Navigate to Jira Administration → 'Issues' tab → Workflow, page shows blank with no workflow displayed. Below error is observed in atlassian-jira.log.

1 2 3 4 5 6 7 8 9 10 11 12 2020-07-07 06:19:04,859 http-nio-8090-exec-153 ERROR thanos 379x4700054x1 1cr8dym 52.172.206.158,172.21.65.241 /secure/admin/workflows/ListWorkflows.jspa [webwork.util.ValueStack] query="activeWorkflows/empty" {[id="activeWorkflows" type="8" values=""]} {[id="empty" type="8" values=""]} java.lang.reflect.InvocationTargetException     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:498)     ...     ... Caused by: com.atlassian.cache.CacheException: java.lang.RuntimeException: com.opensymphony.workflow.FactoryException: Error converting XML to workflow descriptor.: root cause: Attribute "name" is required and must be specified for element type "step". (line:307 col:18)     at com.atlassian.cache.memory.DelegatingCache.get(DelegatingCache.java:217)     at com.atlassian.cache.memory.DelegatingCache.get(DelegatingCache.java:168)     at com.atlassian.jira.workflow.CachingWorkflowDescriptorStore.getWorkflow(CachingWorkflowDescriptorStore.java:64)

Cause

In Jira database, details of the workflow are stored in table: 'jiraworkflows'.

1 2 3 4 5 6 7 8 9 10 11 XXXX=# \d jiraworkflows; Table "public.jiraworkflows" Column | Type | Collation | Nullable | Default --------------+------------------------+-----------+----------+--------- id | numeric(18,0) | | not null | workflowname | character varying(255) | | | creatorname | character varying(255) | | | descriptor | text | | | islocked | character varying(60) | | | Indexes: "pk_jiraworkflows" PRIMARY KEY, btree (id)

jiraworkflows table has a column called 'descriptor' which stores the Workflow in XML format. When User (with administrator permission) tries to access the Workflow from 'Issue' tab in administration section, XML data present in 'descriptor' column of each workflow is processed and the list of Workflows is displayed on the page. If the XML data present in 'descriptor' column has missing entry or is incomplete or corrupted then Jira fails to load the list of Workflows and due to this, no workflow is displayed on ListWorkflows.jspa page. The cause of XML data corruption could be due to

Solution

Find the corrupt workflow from the jiraworkflow table and delete the respective row from the table

  • Enable SQL DEBUG in Jira and reproduce the issue by navigating to Administration → 'Issue' tab → Workflow

  • SQL DEBUG will capture SQL queries executed against Database by Jira. Search for the lines having following keywords

    • /secure/admin/views/workflow/listworkflows.jsp

    • SELECT ID, workflowname, creatorname

  • The line will have the 'Problematic' Workflow name in WHERE condition.

    In Linux, 'Problematic' Workflow can be found in atlassian-jira-sql.log using below script:

    1 2 cd <jira_home>/log/ grep -i "/secure/admin/views/workflow/listworkflows.jsp" atlassian-jira-sql.log |less |grep -i "SELECT ID, workflowname, creatorname" atlassian-jira-sql.log | awk -F"WHERE" '{ print $2 }' | sort --unique

    Example

    1 2 XXXX@multiverse log % grep -i "/secure/admin/views/workflow/listworkflows.jsp" atlassian-jira-sql.log.1 |less |grep -i "SELECT ID, workflowname, creatorname" atlassian-jira-sql.log.1 | awk -F"WHERE" '{ print $2 }' | sort --unique workflowname='classic default workflow'"
  • Take a backup of Jira Database

    Always back up your data before performing any modification to the database. If possible, try your modifications on a test server.

  • Stop Jira service

  • Run following DB query to delete the workflow from database

    1 DELETE FROM jiraworkflows WHERE workflowname='<name of the workflow>';

    Example

    1 DELETE FROM jiraworkflows WHERE workflowname='classic default workflow'
  • Start Jira service

  • If the deleted workflow is used by Projects, then either import the same workflow from Jira backup or manually create the Workflow to ensure the Projects using workflow are not impacted.

Updated on March 24, 2025

Still need help?

The Atlassian Community is here for you.