Hi, I’m in the process of building a Shopify app via the Remix template. The app seems to work in dev, but after building and starting the app for production/(staging) as described here the app behaves differently.
Clicking app sidebar links in the admin panel seem to either:
- Redirect to login
- Jump back to the previous page
- Work
This is a logpart of visiting the /app/service-request
url
GET /app/service-request?_data=root 200 - - 4.743 ms
[shopify-app/INFO] Authenticating admin request | {shop: null}
[shopify-app/DEBUG] Attempting to authenticate session token | {shop: null, sessionToken: {"header":"<session_header>","search":null}}
[shopify-app/DEBUG] Validating session token | {shop: null}
[shopify-app/DEBUG] Session token is valid - validated | {shop: null, payload: {"iss":"https://<shopname>/admin","dest":"https://<shopname>","aud":"41df15966e5fe23fffa2b9fac135ff4f","sub":"130955215113","exp":1753364709,"nbf":1753364649,"iat":1753364649,"jti":"5ab3fcf3-8592-4fe5-b72f-71e6a7f4a7df","sid":"014434fd-359c-4d86-b455-41f31652781a","sig":"360c53a0d4b0c9925a0b8dc280d137afce95d6c19c7145ae6d571aaf089e03f1"}}
[shopify-app/DEBUG] Session token is valid - authenticated | {shop: <shopname>, payload: [object Object]}
[shopify-app/DEBUG] Loading session from storage | {shop: <shopname>, sessionId: offline_<shopname>}
[shopify-app/INFO] Authenticating admin request | {shop: null}
[shopify-app/DEBUG] Attempting to authenticate session token | {shop: null, sessionToken: {"header":"<session_header>","search":null}}
[shopify-app/DEBUG] Validating session token | {shop: null}
[shopify-app/DEBUG] Session token is valid - validated | {shop: null, payload: {"iss":"https://<shopname>/admin","dest":"https://<shopname>","aud":"41df15966e5fe23fffa2b9fac135ff4f","sub":"130955215113","exp":1753364709,"nbf":1753364649,"iat":1753364649,"jti":"5ab3fcf3-8592-4fe5-b72f-71e6a7f4a7df","sid":"014434fd-359c-4d86-b455-41f31652781a","sig":"360c53a0d4b0c9925a0b8dc280d137afce95d6c19c7145ae6d571aaf089e03f1"}}
[shopify-app/DEBUG] Session token is valid - authenticated | {shop: <shopname>, payload: [object Object]}
[shopify-app/DEBUG] Loading session from storage | {shop: <shopname>, sessionId: offline_<shopname>}
GET /app/service-request?_data=routes%2Fapp 200 - - 12.511 ms
GET /app/service-request?_data=routes%2Fapp.service-request._index - - - - ms
DOMException [AbortError]: This operation was aborted
at new DOMException (node:internal/per_context/domexception:53:5)
at AbortController.abort (node:internal/abort_controller:391:18)
at ServerResponse.<anonymous> (/app/node_modules/@remix-run/express/dist/server.js:96:97)
at ServerResponse.emit (node:events:536:35)
at emitCloseNT (node:_http_server:1021:10)
at Socket.onServerResponseClose (node:_http_server:277:5)
at Socket.emit (node:events:536:35)
at TCP.<anonymous> (node:net:343:12)
at TCP.callbackTrampoline (node:internal/async_hooks:130:17) Request {
size: 0,
follow: 20,
compress: true,
counter: 0,
agent: undefined,
highWaterMark: 16384,
insecureHTTPParser: false,
[Symbol(Body internals)]: {
body: null,
type: null,
size: 0,
boundary: null,
disturbed: false,
error: null
},
[Symbol(Request internals)]: {
method: 'GET',
redirect: 'follow',
headers: {
accept: '*/*',
'accept-encoding': 'gzip, deflate, br, zstd',
'accept-language': 'en-NL',
authorization: '<bearer_token>',
baggage: '<sentry_baggage>',
'cache-control': 'no-cache',
connection: 'upgrade',
host: '<app_host>',
pragma: 'no-cache',
priority: 'u=4',
referer: 'https://<app_host>/app?embedded=1&hmac=810be5991a264508d67491bd4f698dc1f58a42835051a01080609cde821f8e15&host=YWRtaW4uc2hvcGlmeS5jb20vc3RvcmUvc2VydmljZS1hbmQtcmVwYWlyLXN0YWdpbmc&id_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczpcL1wvc2VydmljZS1hbmQtcmVwYWlyLXN0YWdpbmcubXlzaG9waWZ5LmNvbVwvYWRtaW4iLCJkZXN0IjoiaHR0cHM6XC9cL3NlcnZpY2UtYW5kLXJlcGFpci1zdGFnaW5nLm15c2hvcGlmeS5jb20iLCJhdWQiOiI0MWRmMTU5NjZlNWZlMjNmZmZhMmI5ZmFjMTM1ZmY0ZiIsInN1YiI6IjEzMDk1NTIxNTExMyIsImV4cCI6MTc1MzM2NDcwOCwibmJmIjoxNzUzMzY0NjQ4LCJpYXQiOjE3NTMzNjQ2NDgsImp0aSI6IjYwMzUyZTlmLThkNzYtNGNhYy04MjM3LTMzODZjYzVhZGQyZSIsInNpZCI6IjAxNDQzNGZkLTM1OWMtNGQ4Ni1iNDU1LTQxZjMxNjUyNzgxYSIsInNpZyI6IjU0MmJkNDFkZjk1MTY2MmYyMWRmYTc5MjYyZmQ5YzU1YzljYTk1ZWUxZGI5Zjc5ZjA3MzU1MDA2MjMxYjUyZDYifQ.UIJaUWKnJu8-TUa6hVgtyMWup59Zf3fMRbRT0XYpl4Y&locale=en-NL&session=e247742b26ed50c6df2944031e41f420a634b74c6b9fcd7555bd6f5d95caed25&shop=<shopname>×tamp=1753364648',
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'same-origin',
'sentry-trace': '4e85c6ba59214a64939d6ae352b3786b-ac2315aefc741ff0-1',
'user-agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:141.0) Gecko/20100101 Firefox/141.0',
'x-requested-with': 'XMLHttpRequest'
},
credentials: 'same-origin',
parsedURL: URL {
href: 'http://<app_host>/app/service-request?_data=routes%2Fapp.service-request._index',
origin: 'http://<app_host>',
protocol: 'http:',
username: '',
password: '',
host: '<app_host>',
hostname: '<app_host>',
port: '',
pathname: '/app/service-request',
search: '?_data=routes%2Fapp.service-request._index',
searchParams: URLSearchParams { '_data' => 'routes/app.service-request._index' },
hash: ''
},
signal: AbortSignal { aborted: true }
}
}
[shopify-app/INFO] Authenticating admin request | {shop: <shopname>}
[shopify-app/DEBUG] Attempting to authenticate session token | {shop: <shopname>, sessionToken: {"search":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczpcL1wvc2VydmljZS1hbmQtcmVwYWlyLXN0YWdpbmcubXlzaG9waWZ5LmNvbVwvYWRtaW4iLCJkZXN0IjoiaHR0cHM6XC9cL3NlcnZpY2UtYW5kLXJlcGFpci1zdGFnaW5nLm15c2hvcGlmeS5jb20iLCJhdWQiOiI0MWRmMTU5NjZlNWZlMjNmZmZhMmI5ZmFjMTM1ZmY0ZiIsInN1YiI6IjEzMDk1NTIxNTExMyIsImV4cCI6MTc1MzM2NDcwOCwibmJmIjoxNzUzMzY0NjQ4LCJpYXQiOjE3NTMzNjQ2NDgsImp0aSI6IjYwMzUyZTlmLThkNzYtNGNhYy04MjM3LTMzODZjYzVhZGQyZSIsInNpZCI6IjAxNDQzNGZkLTM1OWMtNGQ4Ni1iNDU1LTQxZjMxNjUyNzgxYSIsInNpZyI6IjU0MmJkNDFkZjk1MTY2MmYyMWRmYTc5MjYyZmQ5YzU1YzljYTk1ZWUxZGI5Zjc5ZjA3MzU1MDA2MjMxYjUyZDYifQ.UIJaUWKnJu8-TUa6hVgtyMWup59Zf3fMRbRT0XYpl4Y"}}
[shopify-app/DEBUG] Validating session token | {shop: <shopname>}
[shopify-app/INFO] Authenticating admin request | {shop: <shopname>}
[shopify-app/DEBUG] Attempting to authenticate session token | {shop: <shopname>, sessionToken: {"search":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczpcL1wvc2VydmljZS1hbmQtcmVwYWlyLXN0YWdpbmcubXlzaG9waWZ5LmNvbVwvYWRtaW4iLCJkZXN0IjoiaHR0cHM6XC9cL3NlcnZpY2UtYW5kLXJlcGFpci1zdGFnaW5nLm15c2hvcGlmeS5jb20iLCJhdWQiOiI0MWRmMTU5NjZlNWZlMjNmZmZhMmI5ZmFjMTM1ZmY0ZiIsInN1YiI6IjEzMDk1NTIxNTExMyIsImV4cCI6MTc1MzM2NDcwOCwibmJmIjoxNzUzMzY0NjQ4LCJpYXQiOjE3NTMzNjQ2NDgsImp0aSI6IjYwMzUyZTlmLThkNzYtNGNhYy04MjM3LTMzODZjYzVhZGQyZSIsInNpZCI6IjAxNDQzNGZkLTM1OWMtNGQ4Ni1iNDU1LTQxZjMxNjUyNzgxYSIsInNpZyI6IjU0MmJkNDFkZjk1MTY2MmYyMWRmYTc5MjYyZmQ5YzU1YzljYTk1ZWUxZGI5Zjc5ZjA3MzU1MDA2MjMxYjUyZDYifQ.UIJaUWKnJu8-TUa6hVgtyMWup59Zf3fMRbRT0XYpl4Y"}}
[shopify-app/DEBUG] Validating session token | {shop: <shopname>}
[shopify-app/DEBUG] Session token is valid - validated | {shop: <shopname>, payload: {"iss":"https://<shopname>/admin","dest":"https://<shopname>","aud":"41df15966e5fe23fffa2b9fac135ff4f","sub":"130955215113","exp":1753364708,"nbf":1753364648,"iat":1753364648,"jti":"60352e9f-8d76-4cac-8237-3386cc5add2e","sid":"014434fd-359c-4d86-b455-41f31652781a","sig":"542bd41df951662f21dfa79262fd9c55c9ca95ee1db9f79f07355006231b52d6"}}
[shopify-app/DEBUG] Session token is valid - validated | {shop: <shopname>, payload: {"iss":"https://<shopname>/admin","dest":"https://<shopname>","aud":"41df15966e5fe23fffa2b9fac135ff4f","sub":"130955215113","exp":1753364708,"nbf":1753364648,"iat":1753364648,"jti":"60352e9f-8d76-4cac-8237-3386cc5add2e","sid":"014434fd-359c-4d86-b455-41f31652781a","sig":"542bd41df951662f21dfa79262fd9c55c9ca95ee1db9f79f07355006231b52d6"}}
[shopify-app/DEBUG] Session token is valid - authenticated | {shop: <shopname>, payload: [object Object]}
[shopify-app/DEBUG] Session token is valid - authenticated | {shop: <shopname>, payload: [object Object]}
[shopify-app/DEBUG] Loading session from storage | {shop: <shopname>, sessionId: offline_<shopname>}
[shopify-app/DEBUG] Loading session from storage | {shop: <shopname>, sessionId: offline_<shopname>}
[shopify-app/DEBUG] Checking billing plans | {shop: <shopname>}
GET /app?embedded=1&hmac=810be5991a264508d67491bd4f698dc1f58a42835051a01080609cde821f8e15&host=YWRtaW4uc2hvcGlmeS5jb20vc3RvcmUvc2VydmljZS1hbmQtcmVwYWlyLXN0YWdpbmc&id_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczpcL1wvc2VydmljZS1hbmQtcmVwYWlyLXN0YWdpbmcubXlzaG9waWZ5LmNvbVwvYWRtaW4iLCJkZXN0IjoiaHR0cHM6XC9cL3NlcnZpY2UtYW5kLXJlcGFpci1zdGFnaW5nLm15c2hvcGlmeS5jb20iLCJhdWQiOiI0MWRmMTU5NjZlNWZlMjNmZmZhMmI5ZmFjMTM1ZmY0ZiIsInN1YiI6IjEzMDk1NTIxNTExMyIsImV4cCI6MTc1MzM2NDcwOCwibmJmIjoxNzUzMzY0NjQ4LCJpYXQiOjE3NTMzNjQ2NDgsImp0aSI6IjYwMzUyZTlmLThkNzYtNGNhYy04MjM3LTMzODZjYzVhZGQyZSIsInNpZCI6IjAxNDQzNGZkLTM1OWMtNGQ4Ni1iNDU1LTQxZjMxNjUyNzgxYSIsInNpZyI6IjU0MmJkNDFkZjk1MTY2MmYyMWRmYTc5MjYyZmQ5YzU1YzljYTk1ZWUxZGI5Zjc5ZjA3MzU1MDA2MjMxYjUyZDYifQ.UIJaUWKnJu8-TUa6hVgtyMWup59Zf3fMRbRT0XYpl4Y&locale=en-NL&session=e247742b26ed50c6df2944031e41f420a634b74c6b9fcd7555bd6f5d95caed25&shop=<shopname>×tamp=1753364648 200 - - 117.596 ms
GET /__manifest?p=%2Fapp&p=%2Fapp%2Fservice-provider&p=%2Fapp%2Fservice-request&p=%2Fapp%2Fsettings&version=321e1472 200 - - 5.743 ms
Or
GET /app/service-request?_data=root 200 - - 4.024 ms
[shopify-app/INFO] Authenticating admin request | {shop: null}
[shopify-app/DEBUG] Attempting to authenticate session token | {shop: null, sessionToken: {"header":"<header_token>","search":null}}
[shopify-app/DEBUG] Validating session token | {shop: null}
[shopify-app/DEBUG] Session token is valid - validated | {shop: null, payload: {"iss":"https://<store_url>/admin","dest":"https://<store_url>","aud":"41df15966e5fe23fffa2b9fac135ff4f","sub":"130955215113","exp":1753365471,"nbf":1753365411,"iat":1753365411,"jti":"0f834b4f-de8d-4047-8a79-e61da18027e1","sid":"014434fd-359c-4d86-b455-41f31652781a","sig":"5a5ecb1724d594a08038644af4338239cb204400fbe519adb972bbd9477bff4a"}}
[shopify-app/DEBUG] Session token is valid - authenticated | {shop: <store_url>, payload: [object Object]}
[shopify-app/DEBUG] Loading session from storage | {shop: <store_url>, sessionId: offline_<store_url>}
[shopify-app/INFO] Authenticating admin request | {shop: null}
[shopify-app/DEBUG] Attempting to authenticate session token | {shop: null, sessionToken: {"header":"<header_token>","search":null}}
[shopify-app/DEBUG] Validating session token | {shop: null}
[shopify-app/DEBUG] Session token is valid - validated | {shop: null, payload: {"iss":"https://<store_url>/admin","dest":"https://<store_url>","aud":"41df15966e5fe23fffa2b9fac135ff4f","sub":"130955215113","exp":1753365471,"nbf":1753365411,"iat":1753365411,"jti":"0f834b4f-de8d-4047-8a79-e61da18027e1","sid":"014434fd-359c-4d86-b455-41f31652781a","sig":"5a5ecb1724d594a08038644af4338239cb204400fbe519adb972bbd9477bff4a"}}
[shopify-app/DEBUG] Session token is valid - authenticated | {shop: <store_url>, payload: [object Object]}
[shopify-app/DEBUG] Loading session from storage | {shop: <store_url>, sessionId: offline_<store_url>}
GET /app/service-request?_data=routes%2Fapp 200 - - 27.571 ms
GET /app/service-request?_data=routes%2Fapp.service-request._index - - - - ms
[shopify-app/DEBUG] Missing session token in search params, going to bounce page | {shop: <store_url>}
[shopify-app/DEBUG] Missing session token in search params, going to bounce page | {shop: <store_url>}
[shopify-app/DEBUG] Authenticate returned a response | {shop: <store_url>}
[shopify-app/DEBUG] Authenticate returned a response | {shop: <store_url>}
GET /app?embedded=1&hmac=810be5991a264508d67491bd4f698dc1f58a42835051a01080609cde821f8e15&host=YWRtaW4uc2hvcGlmeS5jb20vc3RvcmUvc2VydmljZS1hbmQtcmVwYWlyLXN0YWdpbmc&locale=en-NL&session=e247742b26ed50c6df2944031e41f420a634b74c6b9fcd7555bd6f5d95caed25&shop=<store_url>×tamp=1753364648 302 - - 11.937 ms
[shopify-app/DEBUG] Rendering bounce page | {shop: <store_url>}
[shopify-app/DEBUG] Authenticate returned a response | {shop: <store_url>}
GET /auth/session-token?embedded=1&hmac=810be5991a264508d67491bd4f698dc1f58a42835051a01080609cde821f8e15&host=YWRtaW4uc2hvcGlmeS5jb20vc3RvcmUvc2VydmljZS1hbmQtcmVwYWlyLXN0YWdpbmc&locale=en-NL&session=e247742b26ed50c6df2944031e41f420a634b74c6b9fcd7555bd6f5d95caed25&shop=<store_url>×tamp=1753364648&shopify-reload=https%3A%2F%2Fserviceandrepair.memoict.dev%2Fapp%3Fembedded%3D1%26hmac%3D810be5991a264508d67491bd4f698dc1f58a42835051a01080609cde821f8e15%26host%3DYWRtaW4uc2hvcGlmeS5jb20vc3RvcmUvc2VydmljZS1hbmQtcmVwYWlyLXN0YWdpbmc%26locale%3Den-NL%26session%3De247742b26ed50c6df2944031e41f420a634b74c6b9fcd7555bd6f5d95caed25%26shop%3D<store_url>%26timestamp%3D1753364648 200 - - 2.652 ms
[shopify-app/INFO] Authenticating admin request | {shop: <store_url>}
[shopify-app/DEBUG] Attempting to authenticate session token | {shop: <store_url>, sessionToken: {"header":"<header_token>","search":null}}
[shopify-app/DEBUG] Validating session token | {shop: <store_url>}
[shopify-app/INFO] Authenticating admin request | {shop: <store_url>}
[shopify-app/DEBUG] Attempting to authenticate session token | {shop: <store_url>, sessionToken: {"header":"<header_token>","search":null}}
[shopify-app/DEBUG] Validating session token | {shop: <store_url>}
[shopify-app/DEBUG] Session token is valid - validated | {shop: <store_url>, payload: {"iss":"https://<store_url>/admin","dest":"https://<store_url>","aud":"41df15966e5fe23fffa2b9fac135ff4f","sub":"130955215113","exp":1753365471,"nbf":1753365411,"iat":1753365411,"jti":"0f834b4f-de8d-4047-8a79-e61da18027e1","sid":"014434fd-359c-4d86-b455-41f31652781a","sig":"5a5ecb1724d594a08038644af4338239cb204400fbe519adb972bbd9477bff4a"}}
[shopify-app/DEBUG] Session token is valid - validated | {shop: <store_url>, payload: {"iss":"https://<store_url>/admin","dest":"https://<store_url>","aud":"41df15966e5fe23fffa2b9fac135ff4f","sub":"130955215113","exp":1753365471,"nbf":1753365411,"iat":1753365411,"jti":"0f834b4f-de8d-4047-8a79-e61da18027e1","sid":"014434fd-359c-4d86-b455-41f31652781a","sig":"5a5ecb1724d594a08038644af4338239cb204400fbe519adb972bbd9477bff4a"}}
[shopify-app/DEBUG] Session token is valid - authenticated | {shop: <store_url>, payload: [object Object]}
[shopify-app/DEBUG] Session token is valid - authenticated | {shop: <store_url>, payload: [object Object]}
[shopify-app/DEBUG] Loading session from storage | {shop: <store_url>, sessionId: offline_<store_url>}
[shopify-app/DEBUG] Loading session from storage | {shop: <store_url>, sessionId: offline_<store_url>}
[shopify-app/DEBUG] Checking billing plans | {shop: <store_url>}
GET /app?embedded=1&hmac=810be5991a264508d67491bd4f698dc1f58a42835051a01080609cde821f8e15&host=YWRtaW4uc2hvcGlmeS5jb20vc3RvcmUvc2VydmljZS1hbmQtcmVwYWlyLXN0YWdpbmc&locale=en-NL&session=e247742b26ed50c6df2944031e41f420a634b74c6b9fcd7555bd6f5d95caed25&shop=<store_url>×tamp=1753364648 200 - - 139.631 ms
GET /__manifest?p=%2Fapp&p=%2Fapp%2Fservice-provider&p=%2Fapp%2Fservice-request&p=%2Fapp%2Fsettings&version=321e1472 200 - - 5.876 ms
How should I go ahead to fix or further diagnose this problem?