Runs in your browser. Your files and text never leave your device - nothing is uploaded.
4xx Client Error
What it means
The server timed out waiting for the request to complete.
| Property | Detail |
|---|---|
| Status class | 4xx Client Error |
| Defined in | RFC 9110, Section 15.5.9 |
| Cacheable by default | Only with explicit caching headers: a cache stores it when the response carries Cache-Control (max-age, s-maxage or public) or Expires. |
| Who needs to act | Usually the client or its network; sometimes the server timeouts are too strict. |
What does HTTP 408 Request Timeout mean?
HTTP 408 Request Timeout means the server gave up waiting for the client to finish sending the request, so it closed the exchange without processing it. The delay is on the client's side of the connection: a slow upload, a stalled network or an idle connection. Because nothing was processed, the request can usually be retried.
How 408 Request Timeout works
A 408 is about the request arriving too slowly, not the server answering too slowly; that is a 504 from a gateway. Servers enforce timeouts on reading headers and bodies to protect themselves from clients that hold connections open, which is how slow-loris attacks work. nginx, for example, returns 408 when a client does not send the complete headers within client_header_timeout, or goes silent for longer than client_body_timeout between reads of the body; both default to 60 seconds. RFC 9110 lets the client repeat the request, on a new connection if the old one can no longer be used.
Example 408 request and response
POST /upload HTTP/1.1
Host: example.com
Content-Length: 52428800
(part of the 50 MB body arrives, then nothing for 60 seconds)
HTTP/1.1 408 Request Timeout
Connection: closeThe server stops waiting and closes the connection; nothing from the partial upload is processed.
What causes a 408 Request Timeout
- Large uploads over a slow or unstable connection.
- Mobile clients losing signal in the middle of a request.
- Browsers opening connections in advance that are never used, which servers such as Apache log as 408.
- Server or load balancer timeouts set lower than real uploads need.
- Apache's mod_reqtimeout limits on reading headers and bodies.
How to fix a 408 Request Timeout
If you are the client
- Retry the request, ideally on a better connection.
- Split large uploads into chunks, or use a resumable upload API.
- Check that your client actually sends the full body it announced in Content-Length.
If you run the server
- Look for patterns: 408s concentrated on one upload endpoint suggest timeouts too short for real users.
- Raise client_body_timeout (nginx) or the mod_reqtimeout limits (Apache) for upload routes only.
- Ignore isolated 408s with no request line in the access log; they are usually idle preconnections.
Related status codes
- 504 Gateway Timeout: A gateway timed out waiting for the upstream server: the opposite direction.
- 499 Client Closed Request: A non-standard nginx log code for when the client gave up first.
- 413 Payload Too Large: The body was rejected for its size, not its speed.
Frequently asked questions
The server timed out waiting for the request to complete.
A slow or interrupted client connection, or a client that opened a connection but didn't send a complete request in time.
Retry the request. If this happens consistently, check your network connection or increase the client's request timeout.
Generally yes. The server did not process the incomplete request, and RFC 9110 explicitly allows the client to repeat it, on a new connection if the old one was closed.
Sources
Other 4xx Client Error codes
Reviewed by Raja Jahangir · Last reviewed: October 7, 2026
