Empty Fields in Jira Align work items get updated when saving changes not involving those fields
Summary
When reviewing the content of an audit log for a Jira Align work items (such as Portfolio Epics, Features or Stories) there will be occasions where the log records that changes were made to fields that the user did not specifically modify before clicking Save.
Looking carefully at the audit log records, it can be seen that the change is always from an empty or blank value to some kind of a default value. The default value can be a 0 value for numeric field, a name representing a null value appropriate to that field (such as "No estimate") or an initial default. A few examples are shown in the below image (where From [] indicates that the field in question was originally empty or blank)
This issue was reported to the Jira Align Support Team against symptoms seen when working with Portfolio Epics (resulting in images and notes in this article also relating to Epics), however it is likely other types of work item can be affected in a similar way.
Environment
Jira Align
Diagnosis
- The end user has confirmed which fields they did modify before clicking save in the work item and that they did not touch all the fields being reported in the audit logs
- The affected fields are always changed From [] to something else
Cause
When a user attempts to create a new work item (such as a Portfolio Epic) in the Jira Align console, the initial page is a subset of the Details tab, where the user must fill in some mandatory fields, with some optional fields also being displayed. However some automatically created mandatory fields (Owner, State, ID etc), further optional fields in the Details tab and fields relating to different tabs are not shown, as per the following image:
When the creating user then clicks Save for the first time
- The save operation writes to all of the fields with whatever values are shown in that initial page (whether mandatory or optional) and also writes to the mandatory fields that have automatically generated values.
- Other optional fields, including further fields usually seen in the Details tab and any fields relating to other tabs, do not get written to at all. This results in those fields being empty in the Jira Align database (noting that empty fields are handled differently from fields that contain 0 or a null value).
- The initial Details screen refreshes to now show more optional fields (for instance the Initial Estimate field may appear) and also show the extra tabs (such as Design, Benefits,Spend etc).
- At this point the various fields shown (in any of the tabs) will be a mixture of actual values saved into the Jira Align Database and default values being displayed where the content of the database for those fields is Empty.
When the creating user (or any user) clicks Save a further time
- The save process does not save just the field(s) modified by the user, it saves any values currently displayed for all fields (where the displayed value differs from the database value).
- This means that the displayed default values for empty fields will be used to write an actual value into those empty fields in the Jira Align database (writing a null value, a zero / 0 or some kind of default value depending on the exact field).
- This then results in the audit log entries being made as field content has been changed from Empty to a default value.
Notes:
- This only affects fields that are Empty in the Jira Align database, so fields that have been already set to a value will not be changed due to this process.
- Usually the issue will only be seen in work items that are either recently created or were created for future work and that work has just started. Work items that have been through a number of updates will usually have already changed such empty fields to contain a value.
- Such changes are always recorded in the audit log as being made by the end user that clicks on Save, as it was that action by that user that is the trigger for the change.
- It does not matter which field that user actually updates or even if Save is used with no actual changes to any fields being made, the result around updating Empty fields with default values will be the same.
- When Save is clicked, Jira Align saves the fields shown in any tabs that the user visited in that session. Any tab that has not been opened by the user will not have any fields saved. As the Details tab is always opened first, the fields shown in the Details tab are always saved.
Solution
The Save operation making changes to fields that are empty is expected behaviour, as when an end user clicks on Save, we cannot determine if those fields were deliberately set to the displayed values by the user or if those fields are displaying default values because the fields in question were empty when the various tabs were opened by that user. As such, anyone reviewing audit log data will need to be made aware that they should accept that the end user may not have deliberately changed fields, where the update is reported as being from an empty ( From [] ) value to a different value.
There are some optional methods that can be used to affect the behaviour:
- When a user first creates a work item, immediately after the initial save, the creating user needs to open every tab (or every tab usually used by the organization) and then click on Save once more. This will immediately set all the empty fields with values and will mean that the audit log then contains the changes right at the start and not at some later point in time.
- Train the end users to only work in the tabs that their role requires so that the save operation only affects tabs they are working in (and if the user happens to open one of the other tabs, close the work item without saving and re-open it before saving changes). This won't stop the changes of Empty fields and the audit log entries from being seen, but it will limit such changes to fields that are located in tabs that are part of their business operations.