Product search API silently fails

Extensions API version: 2026-01

Description

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:

  1. 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.

  2. fetchProductWithId(id) returns the product shell but with empty variants, the product’s title, id, minVariantPrice are populated correctly but variants are missing.

  3. 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.

Hi @Gunes, you’ve noted this happens on certain devices only. Can you share more information on that so we can investigate further?

hey @Paige-Shopify :slight_smile:

yes, it only happens in this one cafe and no other locations so far.

device details:

model: Air 13-inch (M2) (Wi-Fi)
os: iPadOS 26.3 (23D127)
shopify app: 11.0.0

connections tab

the connections tab during one of the incidents, photo taken by the barista

extension details

shopify api: 2026-01
shopify ui extensions: @shopify/ui-extensions: 2026.01

product + location settings

  • pos only products are not inventory tracked
  • all pos locations are pos pro + physical storefront active

let me know what else might help so i can gather that info also, thanks!

hey @Paige-Shopify,

I added a diagnostics screen yesterday, I have some more info.

As predicted product.variants.length is 1, but product.numVariants is 12.

Perfect, thanks for that extra context.
Just to make sure, is this happening consistently or sometimes?

It’s happening sometimes and not consistently.

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.

Another update:

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.