We have created a private app that provides a fulfillment service for Shopify stores. It provides a fetch_stock.json endpoint for responding to inventory queries in our warehouse. On most stores, it seems to work well.
However, on one store, Shopify does not seem to be picking up changes in inventory during its hourly polling of the endpoint. We have checked that the response to Shopify has changed. For example, at 6:46 am the response included a number of 10 for a particular sku. At 7:19am our warehouse inventory was lowered by 1. Then at 7:45am, the response included a number of 9 for that sku. Nevertheless, the Shopify store did not change the inventory level for that sku.
The only time an update seems guaranteed is when we toggle the fulfilment service/inventory for a product to a Shopify location and back to the fulfillment service. (We did this for the above sku at 10:18am and Shopify updated the inventory level).