New Printing API (2026-07): getPrinters() returns empty array despite paired, working receipt printers (iOS + Android)

We are testing the new Printing API (shopify.printing) and are stuck at printer discovery.

Setup

  • Extension api_version: 2026-07
  • iPhone (Shopify POS 11.10.0) and Android, same result on both
  • Two receipt printers, both paired with POS and printing regular sale receipts fine: Epson TM-m30II and Star TSP143, both via Ethernet. When I complete a sale, the printer auto prints the receipts. So the connection appears to be ok.
  • Dev store, extension served via shopify app dev

What we observe

  • shopify.printing is present at runtime (Object.keys(shopify) includes printing, next to the deprecated print)
  • await shopify.printing.getPrinters() resolves but always returns [], even right after printing a sale receipt on the hardware printer, on both platforms, with both printers
  • shopify.printing.print(src) without a printer option works (system print dialog)

Questions

  1. Is there a minimum POS app version for hardware printer discovery? Does 11.10.0 support it?
  2. Is printer discovery gated (beta or staged rollout per shop)? If so, how do we get access?
  3. Are only certain printer models or connection types (LAN, Bluetooth, USB) discoverable right now? The docs show “Star TSP143” as an example but no support matrix.

We log every call with timing and raw responses and can retest on iOS and Android on short notice.Preformatted text

Many thanks!

Hi @Christof_Zirkler and Shopify POS team,

Christof - thank you for posting this issue. I wanted to confirm that after extensive testing we are also experiencing the same issue.

As Christof said, await shopify.printing.getPrinters() resolves but always returns [], even right after printing a sale receipt on the hardware printer, on both platforms, with both printers.

Same issue for us too.

Thank you so much,
Adam

@Christof_Zirkler @adamwooding the new Printing API will be available from POS version 11.11, we’ll add a note to our docs. We’ve designed the API in this way so that you can safely use this API even if the merchant hasn’t updated yet, providing the fallback to the OS printer if you choose to do so.