Enabling CSDM Life Cycle can change the "State" value of Hardware Assets to "Consumed"DescriptionAfter enabling the CSDM Life Cycle plugin, a migration script runs which can change the "State" value of Hardware Assets [alm_hardware] to "Consumed". The value should stay as "In use". The update of the value is not audited. This makes the Asset record out of sync with the linked CI record.Consumed state is only supposed to be used with Consumable assets, and there is an ACL which makes the record read-only after it is Consumed state, making it impossible to update these asset records. The cause is that in the Life Cycle Mapping table, 'Operational - In use' is mapped to 2 records: 'State - In use' and 'State - Consumed' with the same priority, for parent/base table alm_asset.Since there is no mapping for the alm_hardware table, the mapping logic picks a random one of the 2 records for the alm_asset table (alm_asset is the parent table for alm_hardware). This is causing the state value of some assets to be set as 'Consumed'.Tests on sub-production instances may not have caused the issue due to the random chance of the migration using the correct record. The issue is with the scheduled job "Backup bulk populate lifecycle fields" which calls "new LifeCycleUtil().bulkPopulate();". While creating/updating the assets normally the lifecycle values are mapped by a business rule instead, which does not have this issue.Steps to Reproduce Activate CSDM Life Cycle migration:https://docs.servicenow.com/en-US/bundle/utah-servicenow-platform/page/product/configuration-management/concept/csdm-life-cycle-standard-values.htmlNavigate to the "alm_hardware" list, where the install_status is "Consumed", contradicting the Lifecycle Stage/Status which is correctly Operational/In use.WorkaroundThis problem has no workaround, is currently under review and targeted to be fixed in a future release. Subscribe to this Known Error article to receive notifications when more information will be available. This script can be used to correct the status value of assets: var assetGr = new GlideRecord('alm_asset');assetGr.addQuery('sys_class_name', '!=', 'alm_consumable');assetGr.addQuery('install_status',10);assetGr.addEncodedQuery('life_cycle_stage=Operational^life_cycle_stage_status=In Use');assetGr.query();gs.info("Records to be fixed : " + assetGr.getRowCount());assetGr.setValue('install_status',1);assetGr.updateMultiple();assetGr = new GlideRecord('alm_asset');assetGr.addQuery('sys_class_name', '!=', 'alm_consumable');assetGr.addQuery('install_status',10);assetGr.addEncodedQuery('life_cycle_stage=Operational^life_cycle_stage_status=In Use');assetGr.query();gs.info("Records with incorrect status after fix : " + assetGr.getRowCount());Related Problem: PRB1669965