Both shopify.productSearch.searchProducts() and shopify.productSearch.fetchProductWithId() silently fail at the same time on certain devices, while the native Shopify POS search bar continues to work correctly for the same products.
What we observed
In a screen recording from one of our café locations:
searchProducts({ queryString: "latte" }) returns 0 results, we have 20+ products containing “latte” in their title. The same query via the native POS search bar returns results immediately.
fetchProductWithId(id) returns the product shell but with empty variants, the product’s title, id, minVariantPrice are populated correctly but variants are missing.
Both failures happen simultaneously on the same device/session.
Hypothesis
The shopify.productSearch API appears to work against a local on-device product catalog cache, while the native search bar hits the live Shopify API directly. When the device cache becomes desynced or partially corrupted for a location, all productSearch calls fail, but since the native search bypasses this cache, it continues to work.
The partial data returned by fetchProductWithId (title/price present, variants missing) supports this: it looks like some fields are indexed separately and survive a partial cache corruption, while the full variant data does not.
Workaround
Baristas report that restarting the POS app resolves the issue.
I’ve also now deployed a workaround/test-fix to “refetch” the variants with fetchProductVariantsWithProductId, if the variants.length does not match numVariants but i dont know if this explicit call will work or not as fetchProductWithId already supposed to have the variants in there.
After some investigation, we’ve discovered that it’s happening in multiple locations, but only some baristas were reporting it, so not tied to a certain location anymore.