Transitioning issue from post function results in workflow integrity error Edited

We have a ScriptRunner plugin that includes a postfunction that will, under certain circumstances, initiate an additional transition for an issue.  

For example, imagine there's an issue that's currently in Status A.  A user initiates a transition, T0, to Status B.  A post-function for T0 determines that the issue should in turn, initiate another transition, T1, to Status C.  To the user, Status B is effectively skipped.

However, upon doing so, the issue Status is B despite the fact that both the issue history and currently available transitions suggest the issue in in Status C.  And the Integrity Checker reports the following for the issue:

"The current step associated with the workflow entry with id 20373 has an incorrect stepId. (JRA-4539)"

The issue is resolved by running the Fix.  But I'd like to know *why* this is happening in the first place.  The postfunction is the last item in the list and therefore, should work.

Has anyone else run into a problem like this?

2 answers

0 vote
Steven Behnke Community Champion Sep 28, 2017

How are you triggering the transition?

Here's a snippet of how we're performing the transition:

public static IssueService.IssueResult transitionIssue(MutableIssue issue, int transitionId, ApplicationUser user){
IssueInputParameters issueInputParameters = ComponentAccessor.getIssueService().newIssueInputParameters()
issueInputParameters.setSkipScreenCheck(true)

// Need to validate the transition before we can actually perform it.
IssueService.TransitionValidationResult validationResult = ComponentAccessor.getIssueService().validateTransition(user, issue.getId(), transitionId, issueInputParameters);

if (validationResult.isValid()) {
return ComponentAccessor.getIssueService().transition(user, validationResult)
}

log.error("Unable to validate transition!")

log.error(formatErrorCollection(validationResult.getErrorCollection()))

null
}

 I should note that our logs aren't reporting any errors (there's also a similar isValid() check on the result of the IssueService.transition() function).

Thanks!

Shaun

After digging in a bit more, this looks like a race condition in JIRA.  So we ended up bailing on doing the transition in our plugin and instead, implemented it using the SR Fast-Track Transition post function.  It adds a bit of overhead when setting up a new workflow.  But it works!

Suggest an answer

Log in or Join to answer
Community showcase
Sarah Schuster
Posted Jan 29, 2018 in Jira

What are common themes you've seen across successful & failed Jira Software implementations?

Hey everyone! My name is Sarah Schuster, and I'm a Customer Success Manager in Atlassian specializing in Jira Software Cloud. Over the next few weeks I will be posting discussion topics (8 total) to ...

3,307 views 14 20
Join discussion

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you
Atlassian Team Tour

Join us on the Team Tour

We're bringing product updates and pro tips on teamwork to ten cities around the world.

Save your spot