Hi — hoping someone can point me in the right direction on this.
Setup
-
Shopify CLI: 3.94.3
-
App template: shopify-app-template-react-router (
@shopify/shopify-app-react-router^1.1.0, React Router^7.12.0) -
Node: v22.19.0
-
OS: macOS
-
Tunnel: default trycloudflare quick tunnel (via
shopify app dev, no--tunnel-url) -
automatically_update_urls_on_dev = trueinshopify.app.toml
What I’m seeing
When I run shopify app dev and open the app from the Shopify admin, instead of my app’s dashboard rendering inside the embedded iframe, I get a screen that shows:
-
A “Log in” heading
-
A “Shop domain” input field with placeholder text like
example.myshopify.com -
A “Log in” button
-
No Polaris admin chrome (page title bar, primary-action button styling, etc.)
-
Buttons on the page render as unstyled/raw HTML —
<s-page>/<s-section>/<s-button>web components don’t appear to upgrade
The parent URL in the browser stays on https://admin.shopify.com/store/``<shop>/apps/<my-app>, but the iframe contents are the login prompt.
Server-side everything looks fine: shopify app dev reports the tunnel is up, admin requests are authenticated, my loaders run to completion, and Prisma queries return expected data. It’s purely a client-side / embed rendering problem.
What I’ve tried
-
Hard refresh of the admin tab
-
Fully closing and re-opening the admin tab
-
Fresh incognito window
-
shopify app dev --reset, accepted URL updates at the prompt -
Confirmed the Partner Dashboard shows the current trycloudflare URL as App URL and auth redirect after
shopify app devstarts -
Confirmed
automatically_update_urls_on_dev = true