Problem
When the App Bridge contextual Save Bar is visible, clicking a link that opens in a new tab (target="_blank") does not work. The navigation appears to be blocked.
This happens even though the merchant is not navigating away from the embedded app. The current page is not being replaced — a new browser tab should open independently.
We’ve confirmed this behavior recently and were able to reproduce it consistently with a minimal app.
Use Case
We’re building embedded Shopify apps where merchants may have unsaved changes (Save Bar active) and still need to open external resources in a new tab.
For example:
-
Documentation / help articles
-
Third-party tools or dashboards
-
External approval or review links
-
Support or status pages
A common pattern is placing an external link inside a modal (e.g. “View documentation”) while the Save Bar is active because the merchant was editing a form field.
Today, those links are silently blocked while the Save Bar is shown.
Steps to Reproduce
-
Open an embedded app in the Shopify admin.
-
Make a change in a text field so the Save Bar appears.
-
Open a modal that contains a link with
target="_blank"(e.g.https://www.google.com). -
Click the link.
-
Observe: nothing opens — the link is blocked.
-
Click Save or Discard to hide the Save Bar.
-
Click the same link again — it opens normally in a new tab.
Demo video
https://github.com/user-attachments/assets/1eba5803-51bb-4e08-a5e3-c6e05516e72a
Minimal reproduction repo
The entire repro is a single route file based on the Shopify React Router app template:
-
Save Bar shown via
shopify.saveBar.show()when a text field has unsaved changes -
s-text-fieldwithonInputto trigger dirty state while typing -
s-modalopened withcommandFor/command="--show" -
s-buttonwithhrefandtarget="_blank"inside the modal
Current Behavior
-
Save Bar hidden → link with
target="_blank"opens in new tab
-
Save Bar visible → link is blocked / does not open

Expected Behavior
The Save Bar should only guard against navigation that would leave or replace the current embedded app page.
Opening a link in a new tab should be allowed, since:
-
The app iframe is not being replaced
-
The merchant is not losing unsaved changes in the current session
-
target="_blank"explicitly signals external / new-tab navigation
What We’ve Already Explored
Using target="_blank" on s-button with href
Placing the link inside a Polaris s-modal
Confirming the link works when the Save Bar is dismissed
Reproducing with the official React Router app template + App Bridge SaveBar component
Showing the Save Bar programmatically via shopify.saveBar.show()
The issue appears to be at the App Bridge Save Bar level, not specific to our app logic.
Suggested Fix
Ideally App Bridge would:
-
Allow
target="_blank"link clicks while the Save Bar is active -
Distinguish between in-app navigation (should prompt) vs new-tab navigation (should allow)
-
Optionally expose configuration for which link targets are exempt from leave-confirmation behavior
Environment
-
App type: Embedded Shopify app (App Home)
-
Framework: React Router 7
-
Template: shopify-app-template-react-router
-
Packages:
@shopify/app-bridge-react^4.2.4,@shopify/shopify-app-react-router^1.1.0 -
UI: Polaris web components (
s-page,s-text-field,s-modal,s-button) -
Save Bar API:
SaveBarcomponent +shopify.saveBar.show()/hide()
Request
Is this a known limitation or a bug? Is there a recommended workaround we may have missed?
Would love to know if a fix is planned, or if there’s an official pattern for opening external links while the Save Bar is active.
Thanks!