408 Request Timeout
The server was ready, but your device took too long to send the request (or its body), so the server stopped waiting.
Quick checks
- Reload the page.
- Check your connection with the ping test and packet loss test.
- For uploads, try a smaller file or a faster network.
If you’re visiting the site
Stabilise the connection
- Move closer to the router or use Ethernet; stop other large uploads.
- Disconnect a slow VPN server.
If you run the site
Check client timeouts
- nginx returns 408 when
client_header_timeoutorclient_body_timeout(default 60 s) expire. - Apache uses
RequestReadTimeout. Raise them only if legitimate clients are slow (large uploads on mobile).
- nginx returns 408 when
Rule out idle connections
- Some servers send 408 on idle keep-alive connections; browsers retry automatically, so those are harmless.
Still not working?
Frequent 408s on a good connection point to a proxy or security device between you and the server. Try another network to compare.
See what’s happening
LightAtom's connections view shows live upload rates per app, so you can see if something else is saturating your uplink.
Frequently asked questions
What causes 408 Request Timeout?
The client didn't finish sending its request within the server's time limit: slow or lossy networks, large uploads, or a stalled proxy.
What is the difference between 408 and 504?
408: the server waited for the client. 504: a gateway waited for the upstream server. 408 points to your side; 504 to the site's.
Can I fix 408 errors myself?
Often: a more stable connection, a smaller upload or turning off a slow VPN helps. If it happens on every network, the server's timeout may be too short.