Custom app built in the Dev Dashboard with a POS UI extension. The extension deploys and bundles successfully, the app shows as installed, but in the POS smart-grid “Add tile → Apps” list, only the app’s web-link appears (app name + “go to app website”) — the pos.home.tile.render tile never surfaces as an addable tile.
App config:
-
embedded = false,use_legacy_install_flow = false -
application_urlpoints to my hosted backend -
Store is on POS Pro
Extension config:
-
type = "ui_extension",api_version = "2026-04" -
Targets:
pos.home.tile.render+pos.home.modal.render(both → singlesrc/index.tsx, Preact + web-components model) -
Deploys clean on CLI 4.1.0
What I’ve tried (all unsuccessful):
-
Both
type = "pos_ui_extension"andtype = "ui_extension" -
[pos] embeddedset true (app appears as web-link only), false (app disappears from the list), and removed -
application_urlpointed at a static storefront, then a live backend -
Created a fresh extension with a new handle/UID to rule out stale registration — no change
-
POS Pro confirmed; cleared POS app cache, logged out/in, reinstalled POS (Android)
-
Confirmed in the admin POS editor (not just device) — same: only the app web-link, no tile
-
The Dev Dashboard “Install app” link redirects to
application_urland the install handshake appears not to complete (app is headless — no OAuth backend; the extension calls my API directly)
Question: Why does the pos.home.tile.render target not surface as an addable smart-grid tile, when the extension deploys successfully and the app is installed? Is this server-side registration, or does a headless custom (non-App-Store) app need a specific install/distribution step for its POS tile to register? I can share my app client ID and store domain privately if a staff member can check the registration/install state.