Atlassian's Transition to Forge Events and Missing Event Properties
The transition to native Forge events is required due to Atlassian's platform changes and the deprecation of the old event model. These new Forge events have a different structure and do not include all properties previously available. Some event properties that were available in the old model are now missing and cannot be retrieved from the Atlassian API, as outlined in the table below:
Action Required!
It's important that you review and update any Script Listeners that depend on the now-missing properties. There is no workaround for retrieving these properties via the Atlassian REST API. Therefore, to ensure your scripts do not break after the transition, they need to be removed from any scripts that use them. Refer to our Deprecation Notices Overview for details on deadlines.| Event type | Missing properties |
| Issuelink Created Issuelink Deleted |
|
| Worklog Updated | worklog.comment |
| Worklog Created Worklog Deleted |
|
| Version Deleted |
|
| Project Deleted Project Soft Deleted |
|
| Issuetype Deleted |
|
| Issue Deleted |
|
Examples
Issue Deleted
If you have Script Listeners set up for the Issue Deleted event, and your code relies on the issue.fields.duedate property, it will not work once we transition to the Forge Product Events. You will need to modify your script to avoid using this property. Unfortunately, there is no way to retrieve missing properties from the Atlassian REST API.
def totalBalanceFiled = issue.fields.customfield_1712301 // custom fields are not provided in payloadFor deleted events, the missing properties cannot be retrieved because the entity no longer exists. For event types other than deleted, such as created, updated, moved, and so on, Atlassian has not provided the details in the API.
Issuetype Deleted
if (issuetype.subtask) { // if deleted issue type is a subtask, skip the execution
return
}When the issue type is deleted, we can no longer check if it was a subtask so you need to delete that code.
Project Deleted
def projectKey = project.name // it doesn't existVersion Deleted
def releaseDate = version.userReleaseDate // it doesn't exist
def startDate = version.userStartDate // it doesn't exist