Fixing Workflows with Duplicate occurrence of action
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
- Unable to view or edit workflows
- Navigating to the Statuses page throws a "Sorry, we had some technical problems during your last operation."
- Workflows section displays the error:
"The Jira server was contacted but has returned an error response. We are unsure of the result of this operation."
The following appears in the Jira log:
Error converting XML to workflow descriptor.: root cause: Duplicate occurance of action ID 131 found in step 7
Cause 1
For unknown reasons a Jira workflow became corrupt and contains a duplicate action. The XML can't be parsed correctly and the Workflows section fails to be displayed. Follow Solution 1 for the fix.
Cause 2
The workflow contains a post-function that executes a groovy script. The script manipulates the workflow object and injects a workflow action ID action.id that does not exist. Follow Solution 2 for the fix.
Cause 3
In cases where neither of the above two causes apply, corrupt temporary files in the Jira working directory can also cause this problem. Follow Solution 3 for the fix.
Solution 1
Manually remove the duplicate action from the database.
Find the affected workflow:
from the Error message in the logs, use the ID number to search in the database for workflow that has 2 sets of the same action:SELECT id, workflowname FROM jiraworkflows WHERE descriptor like '%<action id="<ID>"%<action id="<ID>"%';
should return only one workflow. You'll use the id returned in step 5
Extract the descriptor:
Copy (SELECT descriptor FROM jiraworkflows WHERE descriptor like '%<action id="<ID>"%<action id="<ID>"%') to '/tmp/desc.csv' DELIMITER ',' QUOTE '''' CSV;
will create a /tmp/desc.csv file with the workflow XML
Manually search for the step mentioned in the Error and it will contain 2 action IDs exactly the same.
- Remove one ID from <action id= to </action>
Update the Workflow in the DB
Always back up your data before performing any modifications to the database. If possible, test any alter, insert, update, or delete SQL commands on a staging server first.
UPDATE jiraworkflows SET descriptor = '<paste here the full edited XML>' where id = '<database workflow id returned from step 1>';
Solution 2
- Identify the script that executes as part of the impacted workflow.
- Inspect the script and look for action id assignment, make sure the hardcoded ID exists.
- Note: It is possible to oversee equality evaluation "==" that has been set as an assignment "=" and this will lead to described error.
Solution 3
Clear the contents of the work directory and restart Jira:
- Stop Jira.
- Delete the contents of the
JIRA_INSTALL
/work
directory.
Do not delete the entire directory itself, just its contents! - Restart Jira.