Run rules immediately
Do you really need this?
Synchronous rules can cause pages to load slowly and can cause general performance issues on your instance. Only use if you really need this.
Sometimes it is desired that a rule executes before the issue page is updated. E.g. On issue update, when the page refreshes you want the effects of a rule to be shown.
By default, rules run asynchronously with the page refreshing straight away - not waiting for any rules to run. This is great for scaling and performance but if an issue is edited in the background a user may not be aware of the changes.
Some triggers allow you to specify that the rule should run synchronously - though, use this very sparingly. This by-passes a fair bit of our scaling infrastructure and runs the rule in the same process as the event that triggers the rule. This blocks the event from completing until the rule has finished.
Why is my synchronous rule not running synchronously
There are times when despite our best efforts we can't run rules synchronously. Unless we give the underlying process a chance to finish, we might not be able to proceed with the rule.
A common example of this is we must allow Jira to finish indexing before a JQL condition will return the correct result. Therefore if we detect that a rule uses a JQL condition, we run the rule asynchronously.