We are experiencing an issue on our site where intermittently the relationships between the commerce items added to the cart and the default shipping group created with the order are not being formed, this is causing us issues during the check out flow for example when validateForCheckOut pipeline chain is invoked it has a processor which will verify if all the commerce items in the order are assigned to shipping groups (precisely validateShippingGroupsForCheckout).
At this point of time we are not sure what is causing it as when we add items to the order we are totally relying upon ATG's OOB handle method in the CartModifierFormHandler, there's no customization around it, though we do have an overridden version of pre and post methods which performs some business validations and adds to form exceptions if there are any. Please let me know if anyone has faced similar issues and how can we overcome this, for now I have a custom build droplet which I invoke on the shopping cart page hence passing the entire order and this droplet will create any missing relationships but that's more like a patch, we do not know the root cause yet.
Probably you can enable debug in OrderRepository and monitor any SQL Exception related to dcspp_shipitem_rel table. Are you facing this issue only in Production? - If yes, you might want to verify the caching configuration of OrderRepository