I’m looking for help here, thanks
Let me first talk about my development environment. I am in mainland China, using Windows, using Clash network proxy, and the shopify cli version is @shopify/cli/3.78.2 win32-x64 node-v22.13.0
Recently I planned to learn to develop Shopify apps. Everything went well until I ran the command shopify app dev in PowerSheel.
I checked the documentation in the link and tried two different ways to run shopify app dev, using Localhost-based development and ngrok tunnel, but both methods ended up with the same problem.
As shown in the picture below, they only show one line of text, “Handling response”
I tried many methods, including shopify cache clear and switch clash proxy, but none of them worked
Here is what PowerShell prints when using --verbose and ngrok
20:40:38 │ remix │ [shopify-app/INFO] Authenticating admin request | {shop: quick-start-18339131.myshopify.com}
20:40:38 │ remix │ [shopify-app/DEBUG] Attempting to authenticate session token | {shop: quick-start-18339131.myshopify.com, sessionToken:
{"header":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczpcL1wvcXVpY2stc3RhcnQtMTgzMzkxMzEubXlzaG9waWZ5LmNvbVwvYWRtaW4iLCJkZXN0IjoiaHR0cHM6XC9cL3F1aWNrLXN0YXJ0LTE4MzM5MTMxLm15c2hvcGlmeS5jb20iLCJhdWQiOiJjYmE5ZDU2YjY2ZWM0N2FkNDdkMzFiNjcxODFlNmVjMSIsInN1YiI6Ijk3NDU2NzE4MTEzIiwiZXhwIjoxNzQ2MTg5Njk4LCJuYmYiOjE3NDYxODk2MzgsImlhdCI6MTc0NjE4OTYzOCwianRpIjoiY
jExNDJhNDAtMTk5MC00ZGYxLWJkNmMtNjFkZTdhNmU3OTUzIiwic2lkIjoiY2M5OTM1ZjAtNzU2NS00NmFlLTlhN2UtZGNkYzM3MzE3N2IxIiwic2lnIjoiNzIxZWRjY2RlOTBkZWUzYTg0NDI2NmIyZGI3NGEwN2E2Yzk2NjA3YzMyYWQxMjhkZDY2OGUzZjE4YmY5NmI0NSJ9.oTi6otJvK_34Dbwd2XbZFA1MCHufPMXQmP8JRmo5as8","search":null}}
20:40:38 │ remix │ [shopify-app/DEBUG] Validating session token | {shop: quick-start-18339131.myshopify.com}
20:40:38 │ remix │ [shopify-app/INFO] Authenticating admin request | {shop: quick-start-18339131.myshopify.com}
20:40:38 │ remix │ [shopify-app/DEBUG] Attempting to authenticate session token | {shop: quick-start-18339131.myshopify.com, sessionToken:
{"header":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczpcL1wvcXVpY2stc3RhcnQtMTgzMzkxMzEubXlzaG9waWZ5LmNvbVwvYWRtaW4iLCJkZXN0IjoiaHR0cHM6XC9cL3F1aWNrLXN0YXJ0LTE4MzM5MTMxLm15c2hvcGlmeS5jb20iLCJhdWQiOiJjYmE5ZDU2YjY2ZWM0N2FkNDdkMzFiNjcxODFlNmVjMSIsInN1YiI6Ijk3NDU2NzE4MTEzIiwiZXhwIjoxNzQ2MTg5Njk4LCJuYmYiOjE3NDYxODk2MzgsImlhdCI6MTc0NjE4OTYzOCwianRpIjoiY
jExNDJhNDAtMTk5MC00ZGYxLWJkNmMtNjFkZTdhNmU3OTUzIiwic2lkIjoiY2M5OTM1ZjAtNzU2NS00NmFlLTlhN2UtZGNkYzM3MzE3N2IxIiwic2lnIjoiNzIxZWRjY2RlOTBkZWUzYTg0NDI2NmIyZGI3NGEwN2E2Yzk2NjA3YzMyYWQxMjhkZDY2OGUzZjE4YmY5NmI0NSJ9.oTi6otJvK_34Dbwd2XbZFA1MCHufPMXQmP8JRmo5as8","search":null}}
20:40:38 │ remix │ [shopify-app/DEBUG] Validating session token | {shop: quick-start-18339131.myshopify.com}
20:40:38 │ remix │ [shopify-app/DEBUG] Session token is valid - validated | {shop: quick-start-18339131.myshopify.com, payload: {"iss":"https://quick-start-18339131.myshopify.com/admin","dest":"https://quick-start-18339131.myshopify.com","aud":"cba9d56b66ec47ad47d31b67181e6ec1","sub":"97456718113","exp":1746189698,"nbf":1746189638,"iat":17
46189638,"jti":"b1142a40-1990-4df1-bd6c-61de7a6e7953","sid":"cc9935f0-7565-46ae-9a7e-dcdc373177b1","sig":"721edccde90dee3a844266b2db74a07a6c96607c32ad128dd668e3f18bf96b45"}}
20:40:38 │ remix │ [shopify-app/DEBUG] Session token is valid - validated | {shop: quick-start-18339131.myshopify.com, payload: {"iss":"https://quick-start-18339131.myshopify.com/admin","dest":"https://quick-start-18339131.myshopify.com","aud":"cba9d56b66ec47ad47d31b67181e6ec1","sub":"97456718113","exp":1746189698,"nbf":1746189638,"iat":17
46189638,"jti":"b1142a40-1990-4df1-bd6c-61de7a6e7953","sid":"cc9935f0-7565-46ae-9a7e-dcdc373177b1","sig":"721edccde90dee3a844266b2db74a07a6c96607c32ad128dd668e3f18bf96b45"}}
20:40:38 │ remix │ [shopify-app/DEBUG] Session token is valid - authenticated | {shop: quick-start-18339131.myshopify.com, payload: [object Object]}
20:40:38 │ remix │ [shopify-app/DEBUG] Session token is valid - authenticated | {shop: quick-start-18339131.myshopify.com, payload: [object Object]}
20:40:38 │ remix │ [shopify-app/DEBUG] Loading session from storage | {shop: quick-start-18339131.myshopify.com, sessionId: offline_quick-start-18339131.myshopify.com}
20:40:38 │ remix │ [shopify-app/DEBUG] Loading session from storage | {shop: quick-start-18339131.myshopify.com, sessionId: offline_quick-start-18339131.myshopify.com}
20:40:38 │ remix │ 2025-05-02T12:40:38.420Z vite-tsconfig-paths:resolve resolving: {
20:40:38 │ remix │ id: 'react/jsx-dev-runtime',
20:40:38 │ remix │ importer: 'C:\\Users\\hy\\Desktop\\project\\App\\test-app\\index.html'
20:40:38 │ remix │ }
20:40:38 │ remix │ 2025-05-02T12:40:38.420Z vite-tsconfig-paths:resolve importer has unsupported extension. skipping...
20:40:38 │ remix │ 2025-05-02T12:40:38.420Z vite-tsconfig-paths:resolve resolving: {
20:40:38 │ remix │ id: '@remix-run/react',
20:40:38 │ remix │ importer: 'C:\\Users\\hy\\Desktop\\project\\App\\test-app\\index.html'
20:40:38 │ remix │ }
The following is the PowerShell output when using ngrok only
20:45:10 │ remix │ Running pre-dev command: "npx prisma generate"
20:45:10 │ graphiql │ GraphiQL server started on port 3457
20:45:10 │ proxy │ Proxy server started on port 3000
20:45:12 │ remix │ Warning: You did not specify an output path for your `generator` in schema.prisma. This behavior is deprecated and will no longer be supported in Prisma 7.0.0. To learn more visit https://pris.ly/cli/output-path
20:45:13 │ remix │ Environment variables loaded from .env
20:45:13 │ remix │ Prisma schema loaded from prisma\schema.prisma
20:45:13 │ remix │ Datasource "db": SQLite database "dev.sqlite" at "file:dev.sqlite"
20:45:14 │ remix │
20:45:14 │ remix │ 1 migration found in prisma/migrations
20:45:14 │ remix │
20:45:14 │ remix │
20:45:14 │ remix │ No pending migrations to apply.
20:45:16 │ remix │ ➜ Local: http://localhost:63109/
20:45:17 │ remix │ ➜ Network: use --host to expose
20:46:26 │ remix │ [shopify-api/INFO] version 11.12.0, environment Remix
20:46:29 │ remix │ [shopify-app/INFO] Authenticating admin request | {shop: quick-start-18339131.myshopify.com}
20:46:29 │ remix │ [shopify-app/DEBUG] Attempting to authenticate session token | {shop: quick-start-18339131.myshopify.com, sessionToken:
{"search":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczpcL1wvcXVpY2stc3RhcnQtMTgzMzkxMzEubXlzaG9waWZ5LmNvbVwvYWRtaW4iLCJkZXN0IjoiaHR0cHM6XC9cL3F1aWNrLXN0YXJ0LTE4MzM5MTMxLm15c2hvcGlmeS5jb20iLCJhdWQiOiJjYmE5ZDU2YjY2ZWM0N2FkNDdkMzFiNjcxODFlNmVjMSIsInN1YiI6Ijk3NDU2NzE4MTEzIiwiZXhwIjoxNzQ2MTkwMDQ1LCJuYmYiOjE3NDYxODk5ODUsImlhdCI6MTc0NjE4OTk4NSwianRpIjoiO
WVlMTg1ZmMtMGJmMS00ZjU0LTk2YmYtYjI1YWM2MTNjMWYyIiwic2lkIjoiY2M5OTM1ZjAtNzU2NS00NmFlLTlhN2UtZGNkYzM3MzE3N2IxIiwic2lnIjoiYWZhMzU5YmYzMWU5N2MwZmYzOGMzZmJiYTU0YTFiMzVmZmMzYTk3MzViNzZiOGE0M2U3NTgyOWI0MTUyZmM3YyJ9.UPA3yF7Xhi4X2XVwEhc4x-KPWrksSB0cKFJbfrR8eKY"}}
20:46:29 │ remix │ [shopify-app/DEBUG] Validating session token | {shop: quick-start-18339131.myshopify.com}
20:46:29 │ remix │ [shopify-app/INFO] Authenticating admin request | {shop: quick-start-18339131.myshopify.com}
20:46:29 │ remix │ [shopify-app/DEBUG] Attempting to authenticate session token | {shop: quick-start-18339131.myshopify.com, sessionToken:
{"search":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczpcL1wvcXVpY2stc3RhcnQtMTgzMzkxMzEubXlzaG9waWZ5LmNvbVwvYWRtaW4iLCJkZXN0IjoiaHR0cHM6XC9cL3F1aWNrLXN0YXJ0LTE4MzM5MTMxLm15c2hvcGlmeS5jb20iLCJhdWQiOiJjYmE5ZDU2YjY2ZWM0N2FkNDdkMzFiNjcxODFlNmVjMSIsInN1YiI6Ijk3NDU2NzE4MTEzIiwiZXhwIjoxNzQ2MTkwMDQ1LCJuYmYiOjE3NDYxODk5ODUsImlhdCI6MTc0NjE4OTk4NSwianRpIjoiO
WVlMTg1ZmMtMGJmMS00ZjU0LTk2YmYtYjI1YWM2MTNjMWYyIiwic2lkIjoiY2M5OTM1ZjAtNzU2NS00NmFlLTlhN2UtZGNkYzM3MzE3N2IxIiwic2lnIjoiYWZhMzU5YmYzMWU5N2MwZmYzOGMzZmJiYTU0YTFiMzVmZmMzYTk3MzViNzZiOGE0M2U3NTgyOWI0MTUyZmM3YyJ9.UPA3yF7Xhi4X2XVwEhc4x-KPWrksSB0cKFJbfrR8eKY"}}
20:46:29 │ remix │ [shopify-app/DEBUG] Validating session token | {shop: quick-start-18339131.myshopify.com}
20:46:29 │ remix │ [shopify-app/DEBUG] Session token is valid - validated | {shop: quick-start-18339131.myshopify.com, payload: {"iss":"https://quick-start-18339131.myshopify.com/admin","dest":"https://quick-start-18339131.myshopify.com","aud":"cba9d56b66ec47ad47d31b67181e6ec1","sub":"97456718113","exp":1746190045,"nbf":1746189985,"iat":17
46189985,"jti":"9ee185fc-0bf1-4f54-96bf-b25ac613c1f2","sid":"cc9935f0-7565-46ae-9a7e-dcdc373177b1","sig":"afa359bf31e97c0ff38c3fbba54a1b35ffc3a9735b76b8a43e75829b4152fc7c"}}
20:46:29 │ remix │ [shopify-app/DEBUG] Session token is valid - validated | {shop: quick-start-18339131.myshopify.com, payload: {"iss":"https://quick-start-18339131.myshopify.com/admin","dest":"https://quick-start-18339131.myshopify.com","aud":"cba9d56b66ec47ad47d31b67181e6ec1","sub":"97456718113","exp":1746190045,"nbf":1746189985,"iat":17
46189985,"jti":"9ee185fc-0bf1-4f54-96bf-b25ac613c1f2","sid":"cc9935f0-7565-46ae-9a7e-dcdc373177b1","sig":"afa359bf31e97c0ff38c3fbba54a1b35ffc3a9735b76b8a43e75829b4152fc7c"}}
20:46:29 │ remix │ [shopify-app/DEBUG] Session token is valid - authenticated | {shop: quick-start-18339131.myshopify.com, payload: [object Object]}
20:46:29 │ remix │ [shopify-app/DEBUG] Session token is valid - authenticated | {shop: quick-start-18339131.myshopify.com, payload: [object Object]}
20:46:29 │ remix │ [shopify-app/DEBUG] Loading session from storage | {shop: quick-start-18339131.myshopify.com, sessionId: offline_quick-start-18339131.myshopify.com}
20:46:29 │ remix │ [shopify-app/DEBUG] Loading session from storage | {shop: quick-start-18339131.myshopify.com, sessionId: offline_quick-start-18339131.myshopify.com}
20:46:29 │ remix │ [shopify-app/INFO] No valid session found | {shop: quick-start-18339131.myshopify.com}
20:46:29 │ remix │ [shopify-app/INFO] Requesting offline access token | {shop: quick-start-18339131.myshopify.com}
20:46:29 │ remix │ [shopify-app/INFO] No valid session found | {shop: quick-start-18339131.myshopify.com}
20:46:29 │ remix │ [shopify-app/INFO] Requesting offline access token | {shop: quick-start-18339131.myshopify.com}
20:46:39 │ remix │ [shopify-app/DEBUG] Authenticate returned a response | {shop: quick-start-18339131.myshopify.com}
20:46:39 │ remix │ [shopify-app/DEBUG] Authenticate returned a response | {shop: quick-start-18339131.myshopify.com}
20:46:39 │ remix │ [shopify-app/INFO] Authenticating admin request | {shop: quick-start-18339131.myshopify.com}
20:46:39 │ remix │ [shopify-app/DEBUG] Attempting to authenticate session token | {shop: quick-start-18339131.myshopify.com, sessionToken:
{"search":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczpcL1wvcXVpY2stc3RhcnQtMTgzMzkxMzEubXlzaG9waWZ5LmNvbVwvYWRtaW4iLCJkZXN0IjoiaHR0cHM6XC9cL3F1aWNrLXN0YXJ0LTE4MzM5MTMxLm15c2hvcGlmeS5jb20iLCJhdWQiOiJjYmE5ZDU2YjY2ZWM0N2FkNDdkMzFiNjcxODFlNmVjMSIsInN1YiI6Ijk3NDU2NzE4MTEzIiwiZXhwIjoxNzQ2MTkwMDQ1LCJuYmYiOjE3NDYxODk5ODUsImlhdCI6MTc0NjE4OTk4NSwianRpIjoiO
WVlMTg1ZmMtMGJmMS00ZjU0LTk2YmYtYjI1YWM2MTNjMWYyIiwic2lkIjoiY2M5OTM1ZjAtNzU2NS00NmFlLTlhN2UtZGNkYzM3MzE3N2IxIiwic2lnIjoiYWZhMzU5YmYzMWU5N2MwZmYzOGMzZmJiYTU0YTFiMzVmZmMzYTk3MzViNzZiOGE0M2U3NTgyOWI0MTUyZmM3YyJ9.UPA3yF7Xhi4X2XVwEhc4x-KPWrksSB0cKFJbfrR8eKY"}}
20:46:39 │ remix │ [shopify-app/DEBUG] Validating session token | {shop: quick-start-18339131.myshopify.com}
20:46:39 │ remix │ [shopify-app/INFO] Authenticating admin request | {shop: quick-start-18339131.myshopify.com}
20:46:39 │ remix │ [shopify-app/DEBUG] Attempting to authenticate session token | {shop: quick-start-18339131.myshopify.com, sessionToken:
{"search":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczpcL1wvcXVpY2stc3RhcnQtMTgzMzkxMzEubXlzaG9waWZ5LmNvbVwvYWRtaW4iLCJkZXN0IjoiaHR0cHM6XC9cL3F1aWNrLXN0YXJ0LTE4MzM5MTMxLm15c2hvcGlmeS5jb20iLCJhdWQiOiJjYmE5ZDU2YjY2ZWM0N2FkNDdkMzFiNjcxODFlNmVjMSIsInN1YiI6Ijk3NDU2NzE4MTEzIiwiZXhwIjoxNzQ2MTkwMDQ1LCJuYmYiOjE3NDYxODk5ODUsImlhdCI6MTc0NjE4OTk4NSwianRpIjoiO
WVlMTg1ZmMtMGJmMS00ZjU0LTk2YmYtYjI1YWM2MTNjMWYyIiwic2lkIjoiY2M5OTM1ZjAtNzU2NS00NmFlLTlhN2UtZGNkYzM3MzE3N2IxIiwic2lnIjoiYWZhMzU5YmYzMWU5N2MwZmYzOGMzZmJiYTU0YTFiMzVmZmMzYTk3MzViNzZiOGE0M2U3NTgyOWI0MTUyZmM3YyJ9.UPA3yF7Xhi4X2XVwEhc4x-KPWrksSB0cKFJbfrR8eKY"}}
20:46:39 │ remix │ [shopify-app/DEBUG] Validating session token | {shop: quick-start-18339131.myshopify.com}
20:46:39 │ remix │ [shopify-app/DEBUG] Session token is valid - validated | {shop: quick-start-18339131.myshopify.com, payload: {"iss":"https://quick-start-18339131.myshopify.com/admin","dest":"https://quick-start-18339131.myshopify.com","aud":"cba9d56b66ec47ad47d31b67181e6ec1","sub":"97456718113","exp":1746190045,"nbf":1746189985,"iat":17
46189985,"jti":"9ee185fc-0bf1-4f54-96bf-b25ac613c1f2","sid":"cc9935f0-7565-46ae-9a7e-dcdc373177b1","sig":"afa359bf31e97c0ff38c3fbba54a1b35ffc3a9735b76b8a43e75829b4152fc7c"}}
20:46:39 │ remix │ [shopify-app/DEBUG] Session token is valid - validated | {shop: quick-start-18339131.myshopify.com, payload: {"iss":"https://quick-start-18339131.myshopify.com/admin","dest":"https://quick-start-18339131.myshopify.com","aud":"cba9d56b66ec47ad47d31b67181e6ec1","sub":"97456718113","exp":1746190045,"nbf":1746189985,"iat":17
46189985,"jti":"9ee185fc-0bf1-4f54-96bf-b25ac613c1f2","sid":"cc9935f0-7565-46ae-9a7e-dcdc373177b1","sig":"afa359bf31e97c0ff38c3fbba54a1b35ffc3a9735b76b8a43e75829b4152fc7c"}}
20:46:39 │ remix │ [shopify-app/DEBUG] Session token is valid - authenticated | {shop: quick-start-18339131.myshopify.com, payload: [object Object]}
20:46:39 │ remix │ [shopify-app/DEBUG] Session token is valid - authenticated | {shop: quick-start-18339131.myshopify.com, payload: [object Object]}
20:46:39 │ remix │ [shopify-app/DEBUG] Loading session from storage | {shop: quick-start-18339131.myshopify.com, sessionId: offline_quick-start-18339131.myshopify.com}
20:46:39 │ remix │ [shopify-app/DEBUG] Loading session from storage | {shop: quick-start-18339131.myshopify.com, sessionId: offline_quick-start-18339131.myshopify.com}
20:46:39 │ remix │ [shopify-app/INFO] No valid session found | {shop: quick-start-18339131.myshopify.com}
20:46:39 │ remix │ [shopify-app/INFO] Requesting offline access token | {shop: quick-start-18339131.myshopify.com}
20:46:39 │ remix │ [shopify-app/INFO] No valid session found | {shop: quick-start-18339131.myshopify.com}
20:46:39 │ remix │ [shopify-app/INFO] Requesting offline access token | {shop: quick-start-18339131.myshopify.com}
20:46:50 │ remix │ [shopify-app/DEBUG] Authenticate returned a response | {shop: quick-start-18339131.myshopify.com}
20:46:50 │ remix │ [shopify-app/DEBUG] Authenticate returned a response | {shop: quick-start-18339131.myshopify.com}
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
› Press d │ toggle development store preview: ✔ on
› Press g │ open GraphiQL (Admin API) in your browser
› Press p │ preview in your browser
› Press q │ quit
Preview URL: https://quick-start-18339131.myshopify.com/admin/oauth/redirect_from_cli?client_id=cba9d56b66ec47ad47d31b67181e6ec1
GraphiQL URL: http://localhost:3457/graphiql