Bug Report: Intermittent application_cant_be_loaded_misconfigured on managed-install for already-installed apps
Summary
Calls to Shopify’s managed-install entry URL intermittently (~1 in 5–10 attempts) redirect the merchant to /store/{shop}/apps?oauth_error=application_cant_be_loaded_misconfigured instead of completing the install/no-op redirect to the app’s application_url. The error is non-deterministic and reproduces across three distinct apps against the same merchant shop, with no config changes on our side and no recent deployments.
Environment
- Merchant shop:
wilgotten.myshopify.com - Apps affected (all reproduce):
client_id = 8b3c66cf9f71b014e3a388e733cd025f(Wilgot local-ihor)client_id = 91ac2acd04e348633993ca11d47db2d4(Wilgot staging)- [third app client_id here]
- App
embeddedflag:falseon all three - Requested scopes:
read_products - App status on shop: already installed (non-zero
x-stats-apipermissionidon every response) - Install flow: Shopify managed installation + client_credentials token grant (non-embedded / standalone app pattern)
- Region observed: responses traverse
gcp-europe-west1,gcp-us-east1,gcp-europe-west4(multi-region inx-dcheader) - First observed: 2026-04-24
- Frequency: ~10–20% of attempts
Reproduction
- Merchant is logged into
admin.shopify.comas the shop owner ofwilgotten.myshopify.com. - Open either of these URLs in a fresh incognito browser tab (reproduces in both forms):
https://admin.shopify.com/oauth/install?client_id=8b3c66cf9f71b014e3a388e733cd025fhttps://admin.shopify.com/store/wilgotten/oauth/install?client_id=8b3c66cf9f71b014e3a388e733cd025f
- Shopify returns HTTP 302. Observed
Locationheader varies:- Success path (~85–90% of attempts):
Location: https://<application_url>/?shop=wilgotten.myshopify.com&hmac=...&host=...×tamp=...— our app loads normally and the flow completes. - Failure path (~10–15% of attempts):
Location: https://admin.shopify.com/store/wilgotten/apps?oauth_error=application_cant_be_loaded_misconfigured— the error page is shown to the merchant.
- Success path (~85–90% of attempts):
- Repeating the same URL 5–15 times reliably reproduces at least one failure.
There is no configuration change, no shopify app deploy, no CLI process running, and no scope change between successful and failed attempts. Consecutive attempts seconds apart can flip from success to failure with no other variable changing.
Expected behavior
For an already-installed app with unchanged scopes, /oauth/install should consistently complete the no-op confirmation and redirect the browser to application_url. Behavior should be deterministic across attempts when nothing has changed.
Actual behavior
On ~1 in 5–10 attempts, Shopify returns a 302 to /store/{shop}/apps?oauth_error=application_cant_be_loaded_misconfigured without ever redirecting to application_url. The error message is generic and offers no actionable detail to either the merchant or the developer.
Sanitized HTTP traces
Shopify response on a failed attempt (status 302)
Relevant response headers (cookies, CF ray IDs redacted; Shopify-side correlation IDs kept):
HTTP/2 302
location: https://admin.shopify.com/store/wilgotten/apps?oauth_error=application_cant_be_loaded_misconfigured
x-stats-apiclientid: 1830279
x-stats-apipermissionid: 873895952759
x-stats-userid: 138926555511
x-shopify-shop-api-call-limit: 1/400
server-timing: upstream_processing;dur=101, upstream_verdict_flag_enabled;dur=1.606;desc="count"
x-dc: gcp-europe-west1,gcp-us-east1,gcp-us-east1,gcp-europe-west4,gcp-europe-west4
x-frame-options: DENY
content-security-policy: ...frame-ancestors 'none'...
report-uri: /csp-report?source%5Baction%5D=install&source%5Bapp%5D=Shopify&source%5Bcontroller%5D=admin%2Foauth&source%5Bsection%5D=admin&source%5Buuid%5D=<shopify-uuid>-<timestamp>
x-request-id: <see list below>
Notable points:
x-stats-apiclientid,x-stats-apipermissionid,x-stats-useridare populated, i.e. Shopify resolved the app, existing install record, and merchant user successfully before failing.server-timingshows ~100 ms of server processing completed before the redirect.server-timingalso includesupstream_verdict_flag_enabled;dur=1.606;desc="count"— suggests an internal verdict/flag check was run.- The
report-uriconfirms the failure is surfaced by theadmin/oauthcontroller’sinstallaction.
Accompanying client-side telemetry (Shopify Monorail) on failure
A browser Monorail POST to https://monorail-edge.shopifysvc.com/v1/produce at the same moment returns 400 Bad Request:
{
"schema_id": "admin_navigation_complete/1.1",
"payload": {
"app_version": "<shopify-admin-build-hash>",
"manifest_route_id": "store-list:fallback",
"pathname": "/oauth/install",
"normalized_pathname": "",
"duration": 1077.6,
"full_page": true,
"connection_type": "4g"
}
}
manifest_route_id: "store-list:fallback" appears consistently on failed attempts — Shopify’s admin SPA fell back to the generic store-list manifest route rather than the expected install manifest route.
What we ruled out (all on our side)
- App config drift: no
shopify app deployrun in the observed window; no CLI processes active. - ngrok / local tunnel: reproduces on staging app (no tunnel), identical symptoms.
- Our backend OAuth code: reproduces by pasting the Shopify
/oauth/installURL directly in incognito, before any request hits our backend. - Popup / COOP / browser opener issues: reproduces in fresh tabs with no popup involvement.
application_url == redirect_urls[0]being equal: splitting them into distinct URLs did not change the failure rate.- URL form (
/store/{shop}/segment): reproduces with both theadmin.shopify.com/oauth/install?client_id=Xandadmin.shopify.com/store/wilgotten/oauth/install?client_id=Xforms. - Specific app misconfiguration: reproduces against three distinct apps with different Partner Dashboard records.
This strongly suggests the cause is Shopify-side, in the shared admin/oauth install controller or an upstream service it depends on.
What we’re asking for
- Please look up the
x-request-ids below and identify what the managed-install validator rejected on those specific attempts. - If this is a known issue with the managed-install flow for already-installed, non-embedded apps, please confirm and indicate whether a fix is in progress.
- If it’s related to
store-list:fallbackmanifest resolution, please indicate what triggers that fallback for an authenticated merchant who hasx-stats-apipermissionidpopulated.
Failing x-request-ids
One line per observed failure. Each is taken from the x-request-id response header of the Shopify 302 on .../oauth/install....
x-request-id: 987cb601-30f3-4d4e-8fd1-9fdb443377cc-1777045201
x-request-id: ec4f2a0f-b8d1-48e1-a53b-165b7af83875-1777047448
Contact
- Partner account: Wilgot AI AB
- Primary contact: [email removed]
- App IDs (listed above)