Shopify app OAuth flow never hits /auth/callback when installing from dev dashboard

Hi everyone,

I’m working on a custom Remix app using the @shopify/shopify-app-remix package and deploying it on AWS App Runner. I’m trying to test the OAuth flow during installation, but I’m stuck: Shopify never seems to call my /auth/callback route, which means no session is stored in the database.

Here’s my setup:

  • App URL: {app_runner_url}

  • Allowed redirect URL(s): {app_runner_url}/auth/callback

  • Dev store: {my_dev_shop}.myshopify.com (created in my Partner Dashboard → Dev stores)

  • Routes in Remix:

    • app/routes/auth.login/route.tsx

      import { login } from "../../shopify.server";
      
      export const loader = ({ request }: { request: Request }) => login(request);
      
      
    • app/routes/auth.callback/route.tsx

      import { authenticate } from "../../shopify.server";
      
      export const loader = ({ request }: { request: Request }) =>
          authenticate.admin(request);
      
      
    • app/routes/app/route.tsx → wraps with authenticate.admin(request)

  • Installation method:

    • I go to the Shopify Dev Dashboard, open my app {my_dev_app}, and click Install.

    • It takes me to https://admin.shopify.com/.../oauth/redirect_from_developer_dashboard?...

    • Then I choose my dev store {my_dev_shop} and proceed with installation.

What happens:

  • In my App Runner logs I only see requests to / and /app.

  • I never see a call to /auth/callback (except when I manually paste the URL in the browser).

  • Because of that, the sessions table in my database stays empty.

  • When I load /app, I get authenticate.admin failed | No valid session found.

What I’ve already tried:

  • Removed any /app prefix from App URL and redirect URLs (now everything points directly to the root domain).

  • Manually hitting /auth/callback does trigger the code, but the normal install flow doesn’t redirect there.

  • Verified that my dev store exists and I can access it.

  • Double-checked logs — Shopify never sends a request to /auth/login or /auth/callback.

Question:
Why is Shopify not redirecting to /auth/callback during installation?
Am I missing something in the app configuration (Partner Dashboard vs Dev Dashboard)?
Is there a difference between installing via “Install” in Dev Dashboard vs the “Test on development store” flow?

Any guidance would be greatly appreciated — I feel like I’m missing a small detail that prevents Shopify from hitting /auth/callback.

Would love some help with this! If anyone has experienced this then please let us know

Hi @Cris_Torrano

Shopify will only call /auth/callback as part of the OAuth flow, which is triggered when your app redirects the merchant to /auth/login. If you never see /auth/callback in your logs, your app is likely not redirecting unauthenticated requests to /auth/login. Can you double-check your App URL, redirect URLs, and root loader logic?

Hi @Liam-Shopify

I can confirm that I’m never hitting auth/login why would that be?
Installed again the dev app in my dev store:

My app url: https://mcm7prt4qj.us-east-1.awsapprunner.com/app
My Redirect URLs: [“``https://mcm7prt4qj.us-east-1.awsapprunner.com/auth/callback”``]

this is my app loader

export const loader = async ({ request }: LoaderFunctionArgs) => {
  console.log(`[APP] Route hit: ${request.url}`);
  const { redirect } = await authenticate.admin(request);
  if (redirect) {
    console.log(`[APP] Redirecting to authentication`);
    return redirect;
  }
  console.log(`[APP] Authenticated successfully`);
  return { apiKey: process.env.SHOPIFY_API_KEY || "" };
};

and these are the logs from the app-runner

09-23-2025 11:05:58 AM [APP] Route hit: http://mcm7prt4qj.us-east-1.awsapprunner.com/app?embedded=1&hmac=5f96ec6a5221c297927a6d41b7ecd5df4e1d7e2f9f532217e4dfd579022c7e22&host=YWRtaW4uc2hvcGlmeS5jb20vc3RvcmUvcGVuY2lsLXNob3AtdGVzdC1jcmlz&id_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczpcL1wvcGVuY2lsLXNob3AtdGVzdC1jcmlzLm15c2hvcGlmeS5jb21cL2FkbWluIiwiZGVzdCI6Imh0dHBzOlwvXC9wZW5jaWwtc2hvcC10ZXN0LWNyaXMubXlzaG9waWZ5LmNvbSIsImF1ZCI6IjA4M2U3MmM0MzA5ZWJjMTVhZjY3MDI5MmZjMTA2ZDg3Iiwic3ViIjoiOTkzMTc0NDg5NDUiLCJleHAiOjE3NTg2MzY0MTcsIm5iZiI6MTc1ODYzNjM1NywiaWF0IjoxNzU4NjM2MzU3LCJqdGkiOiJkYzRhMzFmYS04NzNjLTRiNTMtOWM1NC1lNzBiODhlMGU3NzgiLCJzaWQiOiIwYzQ5ZGI1YS1lZTI3LTRkOWQtOGRkYi0yNzliMDNiMDYwMjciLCJzaWciOiJjYTM1ZTc3MmU5ZDdlMDk5YzUwMjhhMzEyN2Y3OGRkYTU1MzU5ZmM2NDk4ZjEwNWVjZWY2YjMxZDYzZjQ3NzJlIn0.Y1I1-hlJ_dFGaRZfvvK6K6oSLOWofzAb1xVPSQSspYc&locale=en&session=2e1fdb17ed537448c700b3241a5c8381b3d3b91d84c1ce75768d4e383beb7540&shop=pencil-shop-test-cris.myshopify.com&timestamp=1758636357
09-23-2025 11:05:58 AM [APP] SHOPIFY_APP_URL: https://mcm7prt4qj.us-east-1.awsapprunner.com/app
09-23-2025 11:05:58 AM [shopify-app/INFO] Authenticating admin request | {shop: pencil-shop-test-cris.myshopify.com}
09-23-2025 11:05:58 AM [shopify-app/INFO] Authenticating admin request | {shop: pencil-shop-test-cris.myshopify.com}
09-23-2025 11:05:58 AM [shopify-app/INFO] No valid session found | {shop: pencil-shop-test-cris.myshopify.com}
09-23-2025 11:05:58 AM [shopify-app/INFO] Requesting offline access token | {shop: pencil-shop-test-cris.myshopify.com}
09-23-2025 11:05:58 AM [shopify-app/INFO] No valid session found | {shop: pencil-shop-test-cris.myshopify.com}
09-23-2025 11:05:58 AM [shopify-app/INFO] Requesting offline access token | {shop: pencil-shop-test-cris.myshopify.com}
09-23-2025 11:06:08 AM GET /app?embedded=1&hmac=5f96ec6a5221c297927a6d41b7ecd5df4e1d7e2f9f532217e4dfd579022c7e22&host=YWRtaW4uc2hvcGlmeS5jb20vc3RvcmUvcGVuY2lsLXNob3AtdGVzdC1jcmlz&id_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczpcL1wvcGVuY2lsLXNob3AtdGVzdC1jcmlzLm15c2hvcGlmeS5jb21cL2FkbWluIiwiZGVzdCI6Imh0dHBzOlwvXC9wZW5jaWwtc2hvcC10ZXN0LWNyaXMubXlzaG9waWZ5LmNvbSIsImF1ZCI6IjA4M2U3MmM0MzA5ZWJjMTVhZjY3MDI5MmZjMTA2ZDg3Iiwic3ViIjoiOTkzMTc0NDg5NDUiLCJleHAiOjE3NTg2MzY0MTcsIm5iZiI6MTc1ODYzNjM1NywiaWF0IjoxNzU4NjM2MzU3LCJqdGkiOiJkYzRhMzFmYS04NzNjLTRiNTMtOWM1NC1lNzBiODhlMGU3NzgiLCJzaWQiOiIwYzQ5ZGI1YS1lZTI3LTRkOWQtOGRkYi0yNzliMDNiMDYwMjciLCJzaWciOiJjYTM1ZTc3MmU5ZDdlMDk5YzUwMjhhMzEyN2Y3OGRkYTU1MzU5ZmM2NDk4ZjEwNWVjZWY2YjMxZDYzZjQ3NzJlIn0.Y1I1-hlJ_dFGaRZfvvK6K6oSLOWofzAb1xVPSQSspYc&locale=en&session=2e1fdb17ed537448c700b3241a5c8381b3d3b91d84c1ce75768d4e383beb7540&shop=pencil-shop-test-cris.myshopify.com&timestamp=1758636357 500

Thank you in advance!

@Liam-Shopify are there any updates on this?