Intermittent application_cant_be_loaded_misconfigured on app load — request never reaches our server
App details
- App: SuperSMS AI SMS
- client_id: e9b5fd17abdbcfbe1413f8cd2bb2e5d9
- Type: Public app, non-embedded (embedded = false)
- Installation: Shopify managed installation (use_legacy_install_flow = false)
- App URL: ``
https://api.supersms.ai/auth`` - Redirect URL: ``
https://api.supersms.ai/auth/callback`` - Scopes (10):
- read_orders
- write_orders
- read_products
- read_customers
- write_customers
- read_draft_orders
- read_script_tags
- write_script_tags
- write_price_rules
- write_discounts
Symptom
When a merchant opens the app (or installs it via the managed install link), the browser is intermittently redirected to:
https://admin.shopify.com/store/{shop}/apps?oauth_error=application_cant_be_loaded_misconfigured
instead of the app being loaded.
Frequency: roughly 1 in 4–6 attempts.
It is not tied to a specific shop or browser. We can reproduce the issue on the same store simply by repeating the same action.
Key observation — our server never sees the request
We log every request, including path and query parameters.
When the error occurs, no request arrives at our App URL at all. The server log is completely empty for that attempt.
Example:
Attempt 1 → GET /auth?hmac=...&host=...×tamp=...&shop=... → 200/302 ✓ app loads
Attempt 2 → GET /auth?hmac=...&host=...×tamp=...&shop=... → 200/302 ✓ app loads
Attempt 3 → GET /auth?hmac=...&host=...×tamp=...&shop=... → 200/302 ✓ app loads
Attempt 4 → (no request logged) → ✗ oauth_error=application_cant_be_loaded_misconfigured
Attempt 5 → GET /auth?hmac=...&host=...×tamp=...&shop=... → 200/302 ✓ app loads
Additional observations:
- Our /health endpoint returns 200 continuously during all attempts.
- Our TLS certificate is valid.
- The domain resolves correctly.
- The App URL is reachable immediately before and immediately after the failing attempt.
This suggests that Shopify is aborting the app load before requesting our application_url, rather than our endpoint failing to respond.
What we already checked and ruled out
-
App URL reachable / TLS valid
Result: ✓ 200 before and after every failure -
application_url matches a registered redirect host
Result: ✓ Same host: api.supersms.ai -
Scopes match between app configuration and shopify.app.toml
Result: ✓ 10 scopes, identical -
HMAC signature on managed-install requests
Result: ✓ Present and valid on every request we receive -
Stored access/refresh tokens for the shop
Result: ✓ Active, valid refresh token -
Server logs during failure
Result: ✗ No request received -
Reproduced with a second app version
Result: ✓ Same behaviour
What we changed on our side
We previously started a new OAuth authorization round trip on every load of /auth, including when the app was already installed.
We have since changed /auth so that:
- An already-installed shop is given a session directly.
- OAuth is only started when the app is genuinely not installed.
This removed one class of failures, but the intermittent error described above still occurs.
Importantly, the failure still happens without any request reaching our server.
Related report
This looks very similar to the issue described in the following Shopify Community thread, including the roughly 1-in-5-to-10-attempt frequency and the redirect to:
?oauth_error=application_cant_be_loaded_misconfigured
Questions
- Is this a known issue with Shopify managed installation for non-embedded apps?
The linked report appears to describe the same behaviour.
-
Is there anything in the app configuration that could cause Shopify to abort the load before requesting application_url?
-
Is there a way for us to see why Shopify rejected the load on those attempts?
For example:
- Partner Dashboard logs
- An error detail behind oauth_error
- A request ID / correlation ID that we can quote when contacting Shopify Support
- Any other Shopify-side diagnostic information
- Would switching use_legacy_install_flow to true be supported for an existing public app?
If supported, would switching to the legacy install flow avoid this condition?
Any guidance would be appreciated.
We can provide:
- Full request logs
- A screen recording showing the failure
- A test store
- Timestamps for successful and failed attempts
- Any additional technical information needed to reproduce the issue.