LightAtom

408 Request Timeout: Causes and Fixes

The server waited too long for the client to send its request and closed the connection, usually on a slow or unstable connection.

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

  1. Stabilise the connection

    1. Move closer to the router or use Ethernet; stop other large uploads.
    2. Disconnect a slow VPN server.

If you run the site

  1. Check client timeouts

    1. nginx returns 408 when client_header_timeout or client_body_timeout (default 60 s) expire.
    2. Apache uses RequestReadTimeout. Raise them only if legitimate clients are slow (large uploads on mobile).
  2. Rule out idle connections

    1. 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.

LightAtom team

The people who build LightAtom, a network monitor for macOS.