Developer Tools

HTTP 408 Request Timeout

4xx Client Error. The server timed out waiting for the request to complete.

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.

PropertyDetail
Status class4xx Client Error
Defined inRFC 9110, Section 15.5.9
Cacheable by defaultOnly 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 actUsually 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: close

The 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

Sources

Other 4xx Client Error codes

Reviewed by Raja Jahangir · Last reviewed: October 7, 2026