HTTP Status Codes

408 408 Request Timeout

The server timed out waiting for the client to send the complete request.

What Is This?

The HTTP 408 Request Timeout status code indicates that the server timed out waiting for the client to send the complete request. This typically occurs when a client establishes a connection but takes too long to send the full request headers or body. It helps servers free up resources tied to idle connections.

Common Causes & Solutions

1

Common Cause

Slow client upload speed causing large request body delays

2

Common Cause

Keep-alive connection idle for too long

3

Common Cause

Client stalled or crashed mid-request

4

Common Cause

Proxy server timeout between client and origin

5

Increase timeout settings

Adjust server timeouts to accommodate slow clients without disconnecting them prematurely.

# Nginx
client_body_timeout 60s
client_header_timeout 60s
keepalive_timeout 75s

# Node.js (Express)
const server = app.listen(3000)
server.timeout = 120000 // 2 minutes

# Apache
Timeout 60
KeepAliveTimeout 5
6

Optimize client uploads

Compress or chunk large uploads to prevent timeout during slow connections. Use progress indicators for large file uploads.

Related Entries

More from this reference:

Frequently Asked Questions

Should I retry after a 408?

Yes. 408 is a transient error — the client can safely retry the request. Use exponential backoff to avoid overwhelming the server with retries.

How does 408 differ from 504 Gateway Timeout?

408 is a client timeout — the client took too long to send the request. 504 is a gateway timeout — the server acting as a gateway or proxy timed out waiting for an upstream server to respond.