App rejected

Topic summary

A developer’s Shopify app was rejected for three main issues:

1. Missing setup instructions: The app performs fulfillment operations (retrieving orders, marking as fulfilled, adding tracking) without requiring merchant configuration. Reviewers want in-app instructions even though no merchant action is needed.

2. Lack of interactive UI: After OAuth, the app must provide functionality merchants can interact with. A landing page explaining the app’s purpose is recommended, even for automated fulfillment apps.

3. Embedded app redirect failure: The app redirects to a non-embedded version instead of staying within Shopify’s admin interface.

Resolution: The third issue was solved by initializing App Bridge on the /shopify/callback page to properly redirect back to Shopify Admin. Two implementation options exist:

  • Server-side redirect using query parameters (base64 decode the host parameter)
  • Client-side redirect via App Bridge after rendering a blank callback page

The developer must also enable embedded app settings in the Partner Dashboard. The conversation confirms App Bridge works regardless of the framework (Node.js/Express) used.

Summarized with AI on November 18. AI used: claude-sonnet-4-5-20250929.

hi,
I have submitted an app on the Shopify but its rejected,
I need assistance about rejection points.

  1. Detailed instructions on how to install and set up your app must be included within your app’s user interface. The ability for merchants to make any required changes for your app to function must be available after installation.

in our case its pretty straight forward, we just get fulfillment from Shopify and after the process, we mark as fulfilled and set tracking against it on Shopify that it, we don’t want or require to give any functionality/ability to the merchants. so I want your assistance in it.

  1. The app must have an app user interface with functionality that merchants can interact with when redirected after OAuth. Currently, there is no functionality I can interact within your app’s user interface unless I login to the client portal. Please see this screenshot for additional details

At this point, I need to clarification. in my understanding that how to interact if anyone how is not our merchants or client.

so for this point requires, if he is not our client then in app user interface shows steps on how to become a client.

I think this is also similar to this. is it?

  1. Upon installing the app, I am being redirected to a non-embedded version. When accessing the app from the installed apps list, the app is redirecting to the embedded version. This occurs when an initial OAuth request redirect fails to escape the iframe. Refer to our Shopify App Bridge documentation. Please see this screen recording for additional details.
1 Like

Hi @Agha

Would you be able to send couple screenshots of your app?

we don’t want or require to give any functionality/ability to the merchants

It would be better to have a landing page explaining what this app does so that it is less confused to merchants (in case they forget after installing the app for a while).

At this point, I need to clarification. in my understanding that how to interact if anyone how is not our merchants or client.

This 2nd point is kind of related to the 1st point above. A simple landing page would help.

Upon installing the app, I am being redirected to a non-embedded version. When accessing the app from the installed apps list, the app is redirecting to the embedded version

As I understand, your app mainly uses Admin API. It doesn’t use any App Bridge functionalities as other normal embedded apps which usually require some kind of interaction with the merchants. In this case, if you want your app to be redirected properly as an embedded app, you should initialize App Bridge. Follow instruction here https://help.shopify.com/en/api/embedded-apps/app-bridge/initialization.

Let me know if my answer makes sense.

Thanks,

Henry

1 Like

Hi @Henry_Tao

I followed app bridge instructions mentioned in the url you provided

https://help.shopify.com/en/api/embedded-apps/app-bridge/initialization

But I am not seeing any changes. My app is still loading a non embedded version.

Will it be visible in development store? or it’s just for production stores.

Hi @Souravv

You might not have embedded app enabled in partner dashboard. You can here and enable it https://partners.shopify.com/YOUR_PARTNER_ID/apps/YOUR_APP/manage_extensions/shopify_admin/embedded_app

Let me know if that works for you.

Thanks,

I have enabled that as well.

My app is build on Node js with Express, does that matter? I mean App bridge will still work right?

Hi @Souravv

May I have your appId? You can also DM me in partner slack workspace http://shopifypartners.slack.com/. I can assist you there.

Thanks @Henry_Tao

I will DM you.

Hi @Henry_Tao

Here’s my partner id and app id

Partner Id: 1556104

App Id: 3826313

Discussed offline and problem solved. Summary: /shopify/callback page needs App Bridge in order to redirect back to Shopify Admin.

1 Like

Hi @Henry_Tao,

I created a new post here (it’s similar/related). Could you take a look?

Thanks

@Henry_Tao What exactly do you need on the callback page for it to work?

Hello @Henry_Tao I’m getting the same issue. Can you please assist

Hi @sajan8093 , there are two options at the callback page.

  • Option 1: perform server-side redirect to shopify by using information in the query params. This can be done manually by doing base64 decode of the host in query param to get the actual domain or if you use Shopify template libraries, it should be done for you.

  • Option 2: perform client-side redirect via App Bridge. For this option, you just need to render a blank page for the callback url, then initialize App Bridge. App Bridge will know which domain to redirect back to Shopify.