Skip to content

Embedded apps show blank page on Chrome 145 direct page loads  #551

@uurcank

Description

@uurcank

Description

Embedded apps show a blank/white page in Chrome 145 when navigating directly to an app page via URL (e.g., admin.shopify.com/store/{shop}/apps/{app}/analytics). Sidebar navigation clicks work fine — only direct page loads are affected.

This issue is not app-specific — I've confirmed the same behavior across multiple third-party Shopify apps from different companies.

Safari works correctly for both direct page loads and sidebar navigation.

Environment

  • Chrome: Version 145.0.7632.160 (Official Build) (arm64)
  • Safari: Works correctly
  • Cookie setting: "Block third-party cookies" (recommended by Shopify)
  • App Bridge: CDN version (cdn.shopify.com/shopifycloud/app-bridge.js)

Console Output

Chrome DevTools shows a massive React re-render loop in Shopify admin's own render-common bundle, preceded by this CSP warning:

The Content Security Policy directive 'upgrade-insecure-requests' is ignored when delivered in a report-only policy.

This warning repeats hundreds of times via render-common-a91c47232eed.js:25, with the call stack showing an infinite Pj → Lo → Pj → Lo React reconciliation loop.

Steps to Reproduce

  1. Open Chrome 145 with "Block third-party cookies" enabled
  2. Navigate directly to any embedded app page via URL bar: https://admin.shopify.com/store/{shop}/apps/{app}/{page}
  3. Page shows blank/white — the iframe never renders
  4. Open DevTools Console — see the upgrade-insecure-requests + render-common re-render loop
  5. Now click a sidebar navigation link to the same page — it loads correctly

Expected Behavior

Direct page loads should render the embedded app iframe, same as sidebar navigation clicks.

Analysis

The upgrade-insecure-requests directive is being sent inside a Content-Security-Policy-Report-Only header from the Shopify admin shell. Per the CSP spec, upgrade-insecure-requests is an action directive that is meaningless in report-only mode. Chrome 145 warns about this, which appears to trigger the React re-render loop in the admin shell's render-common bundle.

The embedded app's own response headers are correct:

  • content-security-policy: frame-ancestors https://{shop}.myshopify.com https://admin.shopify.com
  • No X-Frame-Options header
  • Response status: 200 OK

The issue is in the parent frame (Shopify admin shell), not in the embedded app's iframe response.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions