Window.shopify.loading(true) no longer shows loading bar in embedded app (worked until last week)

Hi everyone,

I’m using the Shopify App Home Loading API to display the loading indicator in my embedded app:

Until last week, the loading bar appeared correctly at the top of the Shopify admin. However, it has stopped appearing entirely, even though the API still exists and resolves successfully.

await window.shopify.ready;

window.shopify.loading(true);

setTimeout(() => {

  window.shopify.loading(false);

}, 3000);
  • window.shopify is defined

  • window.shopify.loading() exists

  • window.shopify.loading() returns a Promise

  • await window.shopify.ready resolves correctly

  • No console errors occur

  • The promise resolves successfully

However, no loading bar appears in the Shopify admin UI.

I also ran the code directly in the browser console inside the Shopify admin iframe with the same result — no loader appears.

Has anyone else experienced this recently?

Since the code worked until last week and still executes successfully, I’m wondering if:

  • the App Home Loading API behavior changed, or

  • the new Shopify admin surfaces no longer render the loading bar.

Any clarification or guidance would be appreciated.

Thanks!

@srafiz we noticed the same thing recently. The API still resolves without errors but the loading bar just doesn’t render, which points to a Shopify admin side change rather than anything in your code.

Worth checking if you’re on the new Shopify admin surface that’s been rolling out, it looks like the loading bar rendering may have changed or been dropped as part of that update. The API technically still exists but might no longer have a visual component attached to it in the new admin.

In the meantime if you need a visible loading indicator the ui-title-bar loading prop or a Polaris Loading component inside the app frame are more reliable alternatives that aren’t tied to the App Home Loading API specifically:

import { Loading } from '@shopify/polaris';

// Render conditionally based on your loading state
{isLoading && <Loading />}

And yeah since this broke last week out of nowhere I’d ping Shopify support directly, something changed on their end.

hi @yavuzoktay

It’s helpful to hear that others are observing the same behavior, so thank you for confirming.

In my case, I’m using Polaris Web Components, not Polaris React, so the component from @shopify/polaris isn’t available in my setup.

In the meantime, since my app is built with Next.js, I’m planning to use NProgress as an alternative loader (triggered on route changes and async actions) until shopify.loading() behavior is fixed on Shopify’s side. This approach should at least provide users with a visible loading indicator.

If anyone has other recommendations or has implemented a loading indicator in an embedded app using Polaris Web Components or other means, please let me know. I’d really appreciate the suggestions.

Thanks a lot.

I saw this issue a long time ago, months, then I stick witth Loading from polaris react.

Thanks all for the reports. We are looking into a fix now

1 Like