On a SharePoint Online list we have several remote event receivers.
One of them is a synchronous ItemUpdating event receiver.
When changing Content Type order or visibility this event receiver is triggered with ItemEventProperties.ListItemId = 0
In our event receiver we're cancelling the event because the ListItemId is 0 (it does not make sense to execute a event receiver on ListItemId 0 as it doesn't exist).
Because we cancel the event the reorder of content type is also cancelled.
We can workaround it by letting the event receiver complete, but why does SharePoint trigger event receivers when changing content type order/visibility?