An admin print action extension (admin.order-details.print-action.render) using <AdminPrintAction src={...}> renders and prints correctly in the desktop web admin, but in the Shopify Mobile app (Android) the preview never renders — native “Unable to display content” alert, and “Preview is loading” hangs forever. Happens whether src returns HTML or PDF.
Environment
- Target:
admin.order-details.print-action.render· Component:AdminPrintAction(@shopify/ui-extensions-react/admin) - Device: Samsung Galaxy A55 (SM-A556E), Android 16
- Shopify Mobile app: Android 10.2625.0 (Build 291417, API 36)
- In-app WebView: Chrome 149.0.7827.91 (“Android WebView”)
- Full UA:
…Chrome/149.0.7827.91 Mobile Safari/537.36 Shopify Mobile/Android/10.2625.0 (Build 291417 with API 36 on Samsung SM-A556E) polaris_uplift ExtensibilityHost MobileBridge MobileBridgeNext MobileOSENext
Repro
- Admin print action extension targeting
admin.order-details.print-action.render. <AdminPrintAction src={src}>wheresrcreturns a trivial self-contained doc:<!DOCTYPE html><html><body><h1>Print test OK</h1></body></html>.- Desktop admin → Print → renders

- Shopify Mobile app (Android) → Print → “Unable to display content”, “Preview is loading” hangs

- Also tried
srcreturning a validapplication/pdf→ same failure.
Network evidence (key detail)
Desktop loads src as an iframe. Mobile retrieves it via a single GET authenticatedFetch (no OPTIONS preflight):
GET <src>
sec-fetch-mode: cors
origin: https://admin.shopify.com
authorization: Bearer <session token>
x-requested-with: com.shopify.mobile
Server returns 200 with access-control-allow-origin: *. Confirmed both delivered successfully yet neither renders:
content-type: text/html→ 200 → not renderedcontent-type: application/pdf(valid PDF) → 200 → not rendered
Ruled out: not CORS/auth (200 + acao: * + valid token), no preflight, not heavy/malformed content (trivial <h1> and valid PDF both fail), action UI itself renders fine, identical code works on desktop.
question:
Is the Shopify Mobile app’s WebView remotely debuggable (e.g., via chrome://inspect / WebView.setWebContentsDebuggingEnabled), or is there any official way to inspect the console/network of an admin UI extension running inside the mobile app? chrome://inspect did not surface the app’s WebView, which made diagnosing this much harder — capturing the request server-side was the only option.
