- the record in question is a column definition
- the state defined by the out-of-box record is a shorter column than what is in the current system
- the column contains data longer than the newly defined length
For further information, see KB0594807: Planned maintenance to address data risks with the rollback function in the Fuji release (https://hi.service-now.com/kb_view.do?sysparm_article=KB0594807).
Steps to Reproduce
- Activate a plugin that contains tables and ensure that at least one of the tables contains a string column with a length less than 4,000 characters.
- Edit the definition of that string column in the Dictionary module.
- Increase the Max Length of the field by 10.
- Upgrade the plugin.
- After the plugin upgrade, the customized Dictionary record should be marked as skipped in the plugin's Upgrade History record.
- Right-click the skipped record on Upgrade Details and choose Revert to Out-of-box.
Note that the column is shorter and data is lost. In some circumstances, the column has been renamed with a u_ prefix.
We have implemented an Instance Analyzer script for the Fuji family of releases that blocks the most common scenarios that can cause data loss.
For instances on which the Instance Analyzer script has not been run
To prevent data loss, avoid use of the Revert to Out-of-box feature until you are able to upgrade to a fixed version listed in the Fixed In section below. If you must execute a Revert to Out-of-box before the instance can be upgraded, try the following two recommendations:
- Perform the Revert to Out-of-box on a sub-production instance and validate the results.
By validating on a sub-production instance, any issues can be uncovered before customers are affected.
- Review the difference between the Out-of-box version and the current version to ensure the current version did not increase the max_length or internal_type of the column.
For instances on which the Instance Analyzer script has been run
To prevent inadvertent data loss, we have limited the following features in all Fuji releases. When a user clicks on either of the following UI actions, we analyze the Update Set:
- Back Out and Revert are refused for only Dictionary records on the following actions:
- Local Changes - Back Out (KB0594820)
- Update Version - Revert to this version (KB0594798)
- Application Metadata - Revert to store app (KB0594819)
- Update Comparison - Revert (KB0594817)
- Upgrade Details - Back Out (KB0594816)
- Upgrade Details - Revert to Out-of-box (KB0594818)
- Upgrade Details - Reapply Changes (KB0594822)
- Push or Pull Version - Use Pulled Version (KB0594812)
If Revert to Out-of-box refuses to run on a Dictionary record, try this alternative approach:
- Navigate to System Definition > Dictionary, and search for, and open the Dictionary record in the list to open its form.
- On the form for the column in question, click the context menu ( icon) and choose Show File Properties.
- Ensure that the Versions related list is sorted by the Created column, with the most recent version at the top.
- In the Versions related list, locate the version you are attempting to back out to.
This is the most recent version whose Source's name starts with System Upgrades.
- Right-click on that version and choose Compare to Current.
- If the comparison window displays changes to max_length, perform the operation on a sub-production instance and validate the results first. Data loss is likely.
- If the comparison window displays changes to internal_type, perform the operation on a sub-production instance and validate the results first. Data loss is possible.
- If the comparison window displays no changes to max_length and no changes to internal_type, click the Revert to this Version button to roll back the change.
Warning: If you see a message like the one that is circled, you will lose data. Click the Cancel button to avoid the change.
Related Problem: PRB678322