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.
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/callbackdoes 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.
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?