Last Updated: July 2026
TL;DR: The HTTP 408 Request Timeout error occurs when the server closes a connection because the client took too long to send its request. Fixes typically involve adjusting PHP, Apache, or Nginx timeout values, checking slow network connections, or addressing large form or file submissions that get stalled.
The HTTP 408 Request Timeout error is a common issue that can appear on any WordPress site, often during crucial times like checkouts or form submissions. Understanding what causes a 408 and how to fix it can help resolve the issue quickly.
This guide explains the meaning of the 408 status code, how it differs from similar errors like 504 and 524, why it occurs on WordPress sites, and provides seven solutions with configuration snippets for Apache, Nginx, and PHP.
What Is the HTTP 408 Request Timeout Error?
The HTTP 408 status code, defined in RFC 7231, indicates that the server closed an idle connection. It means the client connected but did not send a complete request within the allowed time, prompting the server to close the connection.
The process is as follows:
- A client opens a TCP connection to the server.
- The server starts a timer upon receiving the connection.
- If the client doesn’t finish sending the request before the timer expires, the server sends a 408 and closes the connection.
- The client may reconnect automatically, which can result in a brief error flash before the page loads on retry.
A 408 is a 4xx client-side error, meaning the responsibility is on the client side. However, the root cause is often the server’s timeout threshold being too short for the request type.
408 vs 504 vs 524: How to Tell Them Apart in 2026
Timeout errors can look similar on screen, but they indicate different issues.
| Error Code | Who Times Out | Direction | Best For |
|---|---|---|---|
| 408 | Origin server | Client is too slow sending the request | Slow client connections, large uploads stalling |
| 504 | Proxy or gateway | Upstream server is too slow responding | Overloaded origin, slow PHP execution |
| 524 | Cloudflare edge | Cloudflare reached its limit waiting for origin | Sites behind Cloudflare with slow origin servers |
For 504 errors, see the guide on fixing the 504 Gateway Timeout Error in WordPress. For 503 errors due to server overload, refer to the HTTP 503 Service Unavailable guide.
Common Causes of the HTTP 408 Request Timeout Error
Understanding the cause of a 408 helps in choosing the right fix. Common causes on WordPress sites include:
1. Slow or Unstable Client Connection
Slow mobile connections, congested public Wi-Fi, or throttled ISP connections can prevent a browser from transmitting POST data before the server’s keep-alive timeout, resulting in a 408.
2. Server Keep-Alive Timeout Set Too Short
Apache and Nginx have a keep-alive timeout for open connections. On shared hosting, this is often set low (5 to 15 seconds) to conserve resources, which can fail for users sending large payloads.
3. Large Form or File Upload Submissions
Forms with many fields, media uploads, and attachments require more time to transmit. A 10 MB PDF on a 1 Mbps connection takes over 80 seconds to upload, which is longer than most default server timeouts.
4. Server Congestion
Under heavy load, servers process queued connections more slowly. A client waiting for the server to be ready can be timed out before it sends data, common during traffic spikes or on under-resourced plans.
5. Reverse Proxy or CDN Misconfiguration
Timeout values need to be configured at both layers when using Nginx as a reverse proxy in front of Apache. A mismatch can cause 408 responses that seem intermittent.