HTTP 408 — Request Timeout
HTTP 408
Request Timeout
The server gave up waiting for the client to finish sending its request.
What 408 actually means
The connection was opened but the request never arrived complete within the server's patience — a slow upload on a bad connection, or an idle keep-alive connection being reaped. It is a 4xx because the server is blaming the client for being slow, though in practice the network is usually at fault. Note it is the opposite of 504: here the client was slow to send, not the upstream slow to answer.
Common causes
- A slow or dropping connection during a large upload
- The server closing an idle keep-alive connection, which some clients report as 408
- A client that opened a connection and sent nothing
- A too-aggressive `client_body_timeout` or `client_header_timeout` on the server
- A Slowloris-style protection kicking in against genuinely slow clients
If you're just trying to view the page
- Retry — this is often transient
- Check your connection, especially on mobile data or a congested Wi-Fi network
- For large uploads, try a wired connection, or upload a smaller file to test
- Close other applications saturating your upload bandwidth
If it's your site
- Raise `client_body_timeout` and `client_header_timeout` in Nginx, or the equivalent in your server, if legitimate users on slow links are being cut off
- Support resumable or chunked uploads for anything large rather than relying on one long request
- Send `Connection: close` with the 408 so the client does not try to reuse a dead connection
- Distinguish idle-keep-alive reaping from genuine timeouts in your logs; the first is normal and the second is not
Reference
- Status code
- 408
- Reason phrase
- Request Timeout
- Category
- 4xx — Client Error
- Defined in
- RFC 9110 §15.5.9
Common questions
- What does HTTP 408 mean?
- The server gave up waiting for the client to finish sending its request. The connection was opened but the request never arrived complete within the server's patience — a slow upload on a bad connection, or an idle keep-alive connection being reaped. It is a 4xx because the server is blaming the client for being slow, though in practice the network is usually at fault.
- How do I fix a 408 error?
- Retry — this is often transient
- Is 408 a client error or a server error?
- 408 is in the 4xx range, which means client error. The request itself was the problem, so retrying it unchanged will usually return the same code.
Related pages
- 404 Not Found The server is reachable and working, but there is nothing at the address you ask
- 403 Forbidden The server understood the request and is refusing to allow it, and logging in wi
- 401 Unauthorized You need to authenticate, and either you did not or your credentials were reject
- 429 Too Many Requests You have sent more requests than the service allows in a given period.
- 400 Bad Request The server could not understand the request because something about it is malfor
- 413 Content Too Large The request body is bigger than the server is willing to accept.
- 422 Unprocessable Content The request is well-formed and understood, but the data in it fails the rules.
- 405 Method Not Allowed The URL exists, but it does not accept the HTTP method you used.
- 409 Conflict The request cannot be completed because it clashes with the current state of the
- 415 Unsupported Media Type The server will not accept the format of the body you sent.
- 410 Gone The resource was deliberately removed and is not coming back, and there is no fo
- 451 Unavailable For Legal Reasons The content is blocked because of a legal demand — a court order, takedown notic