Dark Feature - Synchronizers are hidden by default

We recommend using Automation and/or Effectors instead of Synchronizers. Automation is safer, provides additional functionality and flexibility, and uses fewer system resources.

Starting from version 5.0, Synchronizers are hidden from the UI for all new installations, as well as existing installations that had no synchronizers installed at the time of the upgrade. To remove synchronizers from an existing installation, or to enable synchronizers (not recommended), see Advanced Configuration and Dark Features.

Synchronization is a process for keeping a structure's issue hierarchy in sync with some other issue properties. Synchronizers run continuously in the background, tracking changes both in Jira and in structures, and when there is a change, make the required updates to one or the other. For example:

Unlike Automations, Synchronizers are adding and removing issues from the structure. If you switch off or remove the synchronizers, the synchronization will stop and all of the issues will remain in the structure, in their last positions. You can edit it further manually.

Potential Conflicts

Since synchronizers run as independent processes, each responsible for synchronizing based on a single rule, they can interact with each other. This may result in some unexpected changes, both within the structure and Jira. This is one of the main reasons we chose to replace them with Automation. Here is one common example:

A user wants to see the issues that are the result of a certain JQL query on the top level of the structure, and all issues linked to them on the level below. The user also wants the top level issues removed from the structure if they no longer pass the JQL. So the user sets up 1) a Filter synchronizer with the Remove option to add (and remove) issues based on the JQL and 2) a Links synchronizer to pull in linked issues. Here is what may happen as a result:

  1. Filter synchronizer pulls in the top level issues.
  2. Link synchronizer, seeing there are some issues added to the structure, checks if they have any issues linked to them with the selected link type and pulls them in.
  3. Filter synchronizer sees there are new issues pulled in and checks if they pass the JQL filter. The child issues do not pass the query of the parents, so they are removed.
  4. Link synchronizer sees that the issues were removed. It interprets this action to mean those child issues are no longer needed, so it removes the links between the parents and the children.

As a result, the user would lose a number of links, without realizing it. There are ways to avoid such situations, but this will require a higher level of experience and technical knowledge. You can expect some users will make similar mistakes.

It is also possible for synchrozers to reverse each other's changes, creating an infinite loop. For example, if you have several structures with the same sub-sets of issues, synchronizers in one structure may react to synchronizes in another structure. While there are built-in mechanism to stop this, it may still create some unintended consequences before the safeguards are triggered. 

Fortunately, there is a way to quickly revert such changes if they occur with the synchronizers Undo feature - but it is still desirable to avoid these situations whenever possible.

Synchronizers Undo

To revert changes done by synchronizers, do the following:

  1. Go to Jira Administration | Structure | Support.
  2. Click View Synchronizer Audit Log.
  3. Specify the time period when the synchronizer made the unwanted changes.
  4. If you know what structure was affected, specify the structure id. You can see the structure id in the URL when you have the structure open.
  5. If you know the exact synchronizer which actions you need to undo, specify the id of this synchronizer. You can find it if you go to the Synchronizers Settings page of a particular structure and hover over any of the links in the Operations column. You'll see the URL with the id in the browser status bar.
  6. Click the Show button to see the list of all changes done by the synchronizer. The changes are done in batches, so you'll see the number of "actions" in each batch - you can click Expand to see all the details.
  7. Select the ones you'd like to undo and switch to the Undo tab.
  8. Review the list of actions which will be reverted and click Undo.

Synchronizers Performance Considerations

When it comes to performance, there are a some things you need to keep in mind:

Mixing Automation and Synchronizers

While it is not recommended, it is possible to use Synchronizers together with Automation. If you choose to do this, keep in mind that Automation sees the results of Synchronizers, but not the other way around: