Shopify Embedded App Check: What It Needs and How Long It Takes

In this guide
The embedded app check is an automated gate on the submission page. It turns green only when Shopify has observed your app authenticating with session tokens and running App Bridge inside the admin. Code that is correct but unused, freshly reinstalled or too slow to render stays red or pending. Plan on a couple of hours of real activity after any reinstall, and up to a day or two in bad cases. Disclosure: we build Shopify apps under Orbitloft (disclosure); the “in our submissions” parts come from our own notes.
What Shopify requires
On December 17, 2024, Shopify announced in its changelog that starting January 6, 2025, embedded apps must use session tokens for user authentication to be eligible for submission, and that listing text and screenshots would get AI-assisted checks that flag issues without blocking submission. The requirements page adds two relevant rules:
| Rule | Text, paraphrased |
|---|---|
| 1.1.1 | An embedded app must work without third-party cookies or local storage, including in Chrome incognito |
| 2.2.3 | Since March 13, 2024, apps must use the latest App Bridge, loading app-bridge.js before other scripts |
Shopify’s session token documentation explains why: third-party cookies aren’t reliably available in the admin iframe, and ID tokens expire one minute after issue, so the frontend should fetch a fresh token per request rather than cache one. The official pages do not say what the checks measure or how often they run, so the timing below is from staff replies and our own experience.
How the check actually works
Staff answers in the developer community thread on embedded app checks say the checks are triggered by telemetry from actual app usage in the admin. Having the code present is not enough: the system needs to see App Bridge activity and session token events. The same replies say the checks run every 2 hours, with up to a 2-day lag before telemetry is fully processed. Treat those numbers as a staff statement in a forum, subject to change.
That matches our pipeline note: reinstalling an app on the dev store resets what the crawler has seen, and Submit stays blocked until about two hours of session-token activity has been observed. So reinstall early, not on submission day.
| Situation | What to expect |
|---|---|
| Fresh install, no activity | Checks pending or red |
| Clicked through screens right after install | Usually green after the next two-hour run, if the app renders |
| App just reinstalled for a new token | Reset; wait out another cycle |
| Slow or blank dashboard | Red until the page renders and traffic is seen |
| Running only locally | Nothing is observed |
A red check that was not an auth problem
Our most confusing case: a batch of apps showed a red X on “Using session tokens”, which looked like an authentication bug. Auth was fine (token exchange worked and sessions were valid). The cause was a dashboard loader making a slow, uncached call to a language model, plus a body that rendered nothing on the server, so the iframe stayed white for 25 to 60 seconds. After bounding the call with a timeout, caching the result and rendering a spinner during server render, pages painted within seconds, and the red X flipped to green once Shopify observed fast embedded traffic. We changed nothing in the session-token configuration. If your check is red and your config is standard, test load time first. The fixes are in Why Shopify Rejects Apps.
Preparation checklist
Staff advice from that thread, plus what worked for us:
- Deploy to production. Test the live URL, not a local dev server. After config changes, run
shopify app deploy. - Install App Bridge from the CDN. Put the script in the head, after the
shopify-api-keymeta tag. A “missing required configuration fields: shop” error usually comes from the older npm@shopify/app-bridgev3 package or acreateApp()call running alongside the CDN script; remove those. - Validate tokens on your backend. In incognito on a dev store, open the network tab and confirm backend requests carry an
Authorization: Bearerheader. If they don’t, the implementation is incomplete. - Use the app for real. Click every navigation item and run the core feature, ideally from a fresh development store. Do this on the deployed build.
- Wait a cycle. Allow at least two hours before debugging. If it stays red for more than a day with everything verified, other developers report asking Partner Support to review it manually; that comes from forum posts, not Shopify documentation.
- Don’t let the page be slow. A blank iframe is a failure for reviewers too.
Diagnosing a stuck check yourself
Work from the cheapest test to the most expensive, and stop when you find the break:
| Step | What to look at | What a failure means |
|---|---|---|
| 1 | Open the app in the admin on a dev store and time the first paint | Slow enough to feel broken: expect red checks and an unhappy reviewer |
| 2 | View the page source for the shopify-api-key meta tag and the app-bridge.js script | Missing or in the wrong order: fix before anything else |
| 3 | Network tab, backend calls | No Authorization: Bearer header: session tokens aren’t reaching your server |
| 4 | Server logs for a token exchange line on first load | Repeated 401s or redirects to a login route point to auth config |
| 5 | Search the bundle for createApp or an old @shopify/app-bridge import | Legacy code running next to the CDN script |
A normal first load in a token-exchange app logs a message that no valid session was found and then requests an offline access token. In our logs that was the expected path, not an error, so don’t “fix” it. Also confirm your app configuration matches what you deployed: after editing the app configuration file, deploy it again so the live version, not just your local copy, carries the change.
Keep a short note of the date and time of each reinstall and each walkthrough. When the check is still red, that note tells you whether you are inside the two-hour cycle or past it.
Two fresh-install patterns to avoid
| Pattern | Problem | Better |
|---|---|---|
| Reinstall, then submit the same hour | The observation window has reset | Reinstall early and keep using the app |
| Reinstall during every debugging session | Every reinstall also mints a new token and clears observed activity | Reinstall only when you need a fresh token |
| Checking only from a laptop on localhost | Nothing reaches Shopify’s telemetry | Use the deployed URL on a dev store |
| Testing with browser extensions on | Staff say extensions can interfere with telemetry | Use incognito |
If you maintain several apps, stagger the reinstalls so you can click through each app’s screens while its window is open, and write down when each one was last touched.
What not to do
- Don’t re-edit auth code while waiting. Each change risks resetting activity and masking the real fix.
- Don’t rely on a cookie-based session even as a fallback; it breaks the incognito rule (1.1.1).
- Don’t reinstall repeatedly to “refresh” the check. Every reinstall resets observed activity.
- Don’t assume green means ready. The check covers authentication, not billing, data access or listing content.
Where this sits in the submission order
The embedded check is one of the pre-submit gates, along with a complete listing. Do the slow things first: provision, deploy, reinstall on a dev store to mint a fresh token, then work on protected customer data and the listing while the check accumulates observations. That way the two-hour wait costs nothing. For review timing after submission, see what to expect from Shopify app review.
Finally, remember the order of operations on reinstall: Shopify’s requirements (2.3.4) say OAuth must run immediately on reinstall, even for merchants who previously uninstalled. Confirm that your reinstall flow lands in the embedded UI without showing a shop-domain form, because that bounce is a rejection reason on its own.
Quick summary
Authenticate with session tokens, load the App Bridge CDN script first, deploy to production, use the app on a dev store, keep it fast, then wait for the next two-hour cycle. If one of those is missing, no amount of waiting turns the check green.
Frequently asked questions
How long do the embedded app checks take to turn green?
A Shopify staff member in the developer community says the checks run every 2 hours and that telemetry can lag by up to 2 days. That is a community reply, not a documented guarantee. In our own submissions, after a reinstall, roughly two hours of observed activity was what we planned for.
Why is 'Using session tokens' red when my code is correct?
The check is driven by telemetry from real use in the admin, not by reading your code. If the app was just reinstalled, has little traffic, or loads so slowly the iframe is blank, the check can stay red. In our case it flipped green after we fixed a slow loader and traffic was observed.
Do I need the App Bridge CDN script?
Shopify's requirements say that since March 13, 2024 apps must use the latest App Bridge, loading app-bridge.js before your other scripts. Staff replies also say the CDN script goes in the head after the shopify-api-key meta tag.
Can I test the check on localhost?
Not meaningfully. Staff advice in the community is to test the deployed app on a development store, because telemetry has to come from real usage in the admin.
Does using an incognito window help?
Staff recommend testing in incognito so browser extensions don't interfere with telemetry, and Shopify's requirements say embedded apps must work without third-party cookies, including in Chrome incognito.
Keep planning
- How to Choose a Shopify Agency Without Getting Burned
A decision guide to hiring a Shopify agency: scope first, fixed vs hourly, questions to ask, red flags, and why every agency list (including ours) is biased.
Updated Oct 2026 - Shopify App Store Listing Checklist: Assets, Copy, and Pricing
Every field in a Shopify App Store listing with its limits: icon, 1600x900 images, copy lengths, pricing rules, locked editor and visibility, as of October 2026.
Updated Oct 2026 - Why Shopify Rejects Apps: The Review Failures That Cost Weeks
The recurring reasons Shopify App Store reviews fail (billing gates, dropped query strings, mock data, blank iframes), mapped to requirement IDs and fixes.
Updated Oct 2026


