Troubleshooting¶
Find what you're seeing in the first column. Most "my app won't open" problems are one of the first three.
What you see → what it means → what to do¶
| What you see | What it means | What to do |
|---|---|---|
| "Nothing on port N" page | The address is right, but no app answered — it isn't running, or it's still in private mode (localhost only). |
Start the app, and start it on 0.0.0.0. See step 1. |
| Blank page / "invalid host" / a 400 error | The app didn't recognise the web address it was opened with. | Add your address to the app's allowed list (Vite allowedHosts, Django ALLOWED_HOSTS, CRA host-check). See step 3. |
| A login or form fails with a 403 (Django) | Django needs to trust your address for secure form submits. | Add CSRF_TRUSTED_ORIGINS = ["https://<your-address>"]. |
"Mixed content" / it jumps to http:// / broken localhost links |
The app doesn't know it's being opened securely, or the page has http://localhost hard-coded in it. |
Tell the app to trust the gateway (ProxyFix / trust proxy / SECURE_PROXY_SSL_HEADER); use plain /... paths in the front-end. |
Live-reload doesn't work; errors mention ws://localhost |
The auto-refresh is trying to reach localhost. |
Point it at the secure address on port 443 (Vite hmr.clientPort: 443, CRA WDS_SOCKET_PORT=443). |
| It sends you to your lab home page | The name in the address isn't a known shortcut or a 2000–9000 port. | Use a valid name (app, svc, …) or a port in range. See the addresses. |
| An app on a port like 1234 or 9100 won't open | That port is outside the range the gateway routes. | Move the app to a port between 2000 and 9000. |
An http://… link |
Normal — it switches you to https:// by itself. |
Use https://; nothing to fix. |
| The browser can't reach the address at all (can't find it / times out) | Wrong lab number, the computer is off, or a work VPN/firewall is blocking it. | Re-check your lab number; try a phone hotspot to rule out a work network. |
The one check worth running¶
On the lab computer (in code-server's terminal, Jupyter, or SSH), see what your app is actually listening on:
0.0.0.0:5000→ good; the gateway can reach it.127.0.0.1:5000→ this is the problem. Start it on0.0.0.0instead.- no output → the app isn't running (or it's on a different port).
Still stuck¶
- Re-read Run your own app for your tool.
- Paste what you're seeing into an AI assistant using the diagnostic prompt.
- Ask your instructor — include the exact address you opened, the message you
saw, and the output of the
sscommand above.