Environment: embedded app, React, App Bridge from https://cdn.shopify.com/shopifycloud/app-bridge.js (read 2026-11-08), Polaris web components (@shopify/polaris-types 2.0.0), Chrome on macOS.
Problem: <ui-save-bar> and shopify.saveBar do nothing inside an s-app-window.
<ui-save-bar id="x">in the route the window loads, plusshopify.saveBar.show('x'): no bar is drawn. The<button>children render as plain inline buttons in the page.<ui-save-bar>as a child of<s-app-window>: the window never opens, andchildrenisn’t inSAppWindowAttributes.
Expected: the admin draws the save bar, as it does for the same markup in the main app frame.
Cause, from the script (minified identifiers, so approximate)
- The real
ui-save-baris only defined whenwindow.name.startsWith("app-iframe") || scope === "main". Otherwise a stub with emptyshow,hideandtoggleis defined. The window’s frame name isframe://<app>/modal/<uuid>/src, so it gets the stub. - The
s-app-windowschema ischildren: isAppWindow ? [] : [titleBar, ui-save-bar, anyElement], so the app-window variant allows no children.
Related threads: 24511, 34386, 37957.
Request
- Please fix this: make
<ui-save-bar>andshopify.saveBarwork insides-app-window, includingloadinganddisabledon Save and a confirm prompt when the window is closed with unsaved changes. Editor-style apps are the main use of app windows, and the title-bar buttons are the only alternative today. - Until then, document that it isn’t supported, and have the stub warn in the console and hide its children instead of rendering them inline.