Hello
When programming a custom restrictions for items only, everything is fine. UpdateItemLifecycleStateEvents are available on the ItemService and you can add any restrictions that are required to force a customer standard.
Things change significantly when items are driven by change orders (ECO). Then items are linked as ECO records and their lifecycle state can be changed only within the ECO. UpdateItemLifecycleStateEvents (ItemService) are not invoked on such item lifecycle state change. In ChangeOrderService there are no such events available.
Please make UpdateItemLifecycleStateEvents (or UpdateFileLifecycleStateEvents) available for ECO records.
Kind regards
Bronislav