Issue
Symptoms
After committing of Update Set containing list layout changes, List Layout are not applied in the target instance.
Release
All
Environment
All
Cause
Duplicate records in the [sys_ui_list] table for the combination of following fields:
Table, View, Domain, Element, Relationship, Parent, Scope.
When committing an Update Set, the platform does not expect to have these multiple records for the same values and ends up corrupting records. List Layouts have a different coalesce strategy than the Sys ID.
Resolution
Clean the [sys_ui_list] table by removing the duplicate records and the ones with no Element.
Additional Information
https://docs.servicenow.com/csh?topicname=c_ApplicationTools.html&version=latest
When committing an Update Set with a new List Layout, the platform is supposed to first delete the current record (if there is one) with the same values for the fields listed above and then insert a record with the data from the Update Set.
Example Extract from application log, which shows error in coalescing during update set commit
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2018-07-11 15:54:34 (094) worker.2 worker.2 txid=bf7b60b8dbd7 Loading update 7 of 7 from database: sys_ui_list_sysapproval_approver_null with update date 07-11-2018 15:54:33
2018-07-11 15:54:34 (215) worker.2 worker.2 txid=bf7b60b8dbd7 WARNING *** WARNING *** com.glide.script.GlideElementXMLSerializer: Attempted to resolve an invalid reference via a coalesce strategy
on table sys_ui_list for field list_id but retrieved 3 records when querying against said strategy when 1 was expected. Thus the invalid reference could not be resolved.
Please verify the key fields for the coalesce strategy on table sys_ui_list represents the unique key for that table.