Are there postfunctions to delete issues?

We have some issues "Client Initiatives" that are reviewed by the Client and are either - Approved, On hold or Canceled. The approved ones get scheduled into a Sprint/ Release, the On Hold ones sit in the Backlog for future review and reconsideration. So do the Canceled ones.

The management team now does not want to keep the Canceled ones in JIRA, not even out of sight somewhere - they want the "Canceled" ones to be deleted automatically when some clicks on the "Cancel Issue" button. I'm not sure this is a good idea, but I need to respond with whats possible as well as provide recommendations on whats a better way to handle this.

Question - Is there a way to delete issues via a postfunction?

4 answers

4 votes

Deleting issues in post function is never a good idea. I would suggest 2 alternatives, if you can convince your users to do that wink

  1. Move the issues to a new state in the workflow or use a resolution that says Deleted or Obsolete or something else meaningful.
  2. Set a security level on the ticket so that it appears only to admins. The ticket will remain in JIRA but won't be visible to anyone outside of the security level.


If you want to just not see them in the backlog ("I'm not sure this is a good idea") go into the board your team is using and modify the query to not include those issues with the status of Canceled. That way, you can always delete or recover them later.

I'm totally with you - deleting issues, especially "on the fly" is not so good idea (it have some pros, but in my opinion there are more cons). However if your management don't want to archive those issues in one way or another (moving issues to closed project, moving issues to archive instance, copying issue DB entries to separate archive table/DB), then what can you do?


Back to deleting issues. One of the ways is to use Kepler-Rominfo's JJupin.

JJupin has deleteIssue() function, however you cannot delete the current issue (the one you have launched the post-function on). But it's a good thing, because there is a better and safer way to do that:

  • set the "Cancel Issue" action to move issues to the status "To be deleted" (or name it whatever you like, "Waiting for annihilation", "Death sentence", "Zombified" or so wink). Make sure this status is achievable ONLY in the case when the issue is "Cancelled", and make sure that only certain users can trigger it.
  • In JJupin create a SIL service, make it run every 1h or 1d, and attach the following code to the service:
  • string my_key;
    string log_message;
    string[] list_of_issues = selectIssues("Status in ('To be deleted')");
    for (number i=0; i<size(list_of_issues); ++i)
    	my_key = list_of_issues[i];
    	log_message = "SIL SERVICE ---- Deleting issue: "+my_key;
    	logPrint("WARN", log_message);
  • Now every 1 hour or every 1 day all of the issues in the desired status will get deleted.
  • If you add an additional transition, that can bring the issue back from "To be deleted" status, user will have up to 1 hour or 1 day to undo their action in case of mistakenly "Cancelling" issue.

As you can see above, you can get amazing results with small amount of work this way. And that's always the case with JJupin wink And the plugin is really affordable.

Suggest an answer

Log in or Sign up to answer
Community showcase
Posted Oct 09, 2018 in Jira Core

How to manage many similar workflows?

I have multiple projects that use variations of the same base workflow. The variations depend on the requirements of the project or issue type. The variations mostly come in the form of new statuses ...

397 views 6 0
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