Uploaded image for project: 'Jira Platform Cloud'
  1. Jira Platform Cloud
  2. JRACLOUD-83807

Global loop transition causes unexpected status changes due to race condition

XMLWordPrintable

      Issue Summary

      A race condition occurs when a manual loop transition (Global) coincides with an automated transition sequence, leading to an unintended and incorrect issue status change. This issue is particularly evident when an agent manually triggers a loop transition at the same time an automation rule is executing a series of status changes. This can result in the issue unexpectedly landing in a status that does not have a direct transition path defined in the workflow.

      Steps to Reproduce

      1. An agent selects a loop transition on an issue, which is intended to transition the issue to its current status.
      2. Concurrently, an automation rule is triggered, which aims to transition the issue through a sequence of statuses (e.g., "Status A" -> "Status B" -> original status).
      3. While the automation is processing these transitions, the agent attempts to manually use the loop transition.
      4. The issue ends up in an unexpected status due to the race condition, bypassing the workflow’s defined transition paths.

      Note: Reproducing this issue is challenging due to its dependency on precise timing between manual and automated actions.

      Expected Results

      The issue should transition according to the workflow paths defined, without the possibility of bypassing direct transition paths, regardless of simultaneous automation rules or manual transitions.

      Actual Results

      The issue may transition to a status without a direct transition path defined in the workflow, indicating a race condition that permits an unintended status change.

      Error Messages and Logs:

      No specific error messages are displayed. The anomaly is evident in the issue history, with the issue moving from one status to another without a defined transition path for that step.

      Workaround

      Instead of using a global loop transition, configure a single loop transition on each status you have. These would be the steps:

      When creating the loop transition, do not select "Any status" to "Itself":

      Instead, select a status to "Itself", repeating the process to create a single loop transition to each status you want:

       

        1. Screenshot 2025-07-21 at 10.23.27 AM.png
          49 kB
          Petter Gonçalves
        2. Screenshot 2025-07-21 at 10.26.44 AM.png
          11 kB
          Petter Gonçalves
        3. Screenshot 2025-07-21 at 10.28.40 AM.png
          51 kB
          Petter Gonçalves

              Unassigned Unassigned
              bd0e47de2684 Yuri Moura (Inactive)
              Votes:
              5 Vote for this issue
              Watchers:
              7 Start watching this issue

                Created:
                Updated: