How to Fix 408 Request Timeout Error
What 408 Request Timeout means
The 408 status is the server saying "I waited, but you never finished." When you load a page, submit a form, or upload a file, your browser sends the request to the server in pieces. The server holds the connection open while those pieces arrive — but only for a limited time. If the full request does not show up before that timer runs out, the server closes the connection and answers with a 408, freeing the slot for someone else. It is a deliberate housekeeping mechanism, not a crash: idle or half-sent connections cost the server memory, and without a cutoff a few stalled clients could tie up the whole service.
What makes 408 confusing is that it feels like the site is down, when the site is usually fine. The delay is almost always in the journey your request takes: a weak Wi-Fi signal, a mobile network that stalls mid-transfer, a VPN routing you through a slow exit node, or a file so large that sending it simply takes longer than the server allows. Because the natural reaction to any error is to hammer the refresh button, people often make it worse — every retry restarts a fresh request on the same slow connection, and each one can time out again. One calm retry on a steadier connection fixes most 408s in under a minute.
Common causes
- A slow or unstable connection: weak Wi-Fi, a crowded mobile network, or a hotspot that keeps dropping packets stretches your request past the server's wait limit. The data trickles in too slowly and the server closes the connection first.
- Very large uploads or form submissions: a high-resolution video, a giant PDF, or a form with dozens of fields takes a long time to transmit. The longer the transfer, the likelier it is to outlast the timeout — especially on asymmetric home connections with slow upload speeds.
- Server timeouts set too low: sometimes the website is at fault. If the server's header or body timeout is tighter than what its own forms and uploads need, even visitors on fast connections will hit 408 on perfectly normal actions.
- VPN or proxy adding lag: extra hops between you and the server slow every piece of the request. A congested VPN exit node can stall your traffic just long enough to trip the timer while the server waits on the far end.
- A stalled or paused request: switching tabs, minimizing the browser, or letting the device sleep mid-upload pauses the data stream. From the server's perspective the request simply stopped arriving, and the timeout does exactly what it was designed to do.
How to fix 408 Request Timeout — step by step
The whole fix takes about fifteen minutes: retry once, steady the connection, handle the upload properly, and rule out anything in between.
- Retry the action once, calmly. A 408 is often a one-off stall: a packet hiccup while your request was in flight, and the server closed the connection before the rest arrived. Click the button or reload the page exactly once and give it a full, patient wait. If it works this time, there is nothing more to fix — resist the urge to hammer retry, because every half-sent request can trip the timeout again.
- Get on a steadier connection and try again. The most common real-world cause is a connection that drips data too slowly — weak Wi-Fi, a crowded mobile network, or a flaky hotel hotspot. Move closer to the router, switch from Wi-Fi to a wired connection or from mobile data to Wi-Fi (or the reverse), and avoid doing the action while your connection is saturated by a download, a video call, or an update. Then retry the exact same request.
- Shrink or split a large upload. Big file uploads and huge form submissions are the classic 408 trigger: the longer the transfer takes, the likelier it is to outlast the server's patience. Compress the file before uploading, lower the resolution of images or video, or split one giant upload into several smaller ones. Do not navigate away, minimize, or let the device sleep mid-upload — pausing the stream is exactly what the timeout is waiting to punish.
- Clear the browser slate and test once more. A stale session can stall a request before it even leaves properly. In Chrome, open Settings, then Privacy and security, then Delete browsing data, and clear "Cookies and other site data" plus "Cached images and files" for the last 24 hours. Restart the browser, go straight to the page, and perform the action exactly once while every other bandwidth-hungry tab stays closed.
- Turn off the VPN or proxy for this site. VPNs and proxies add extra hops between you and the server, and a slow exit node can stretch your request past the timeout while the server waits on the far end. Turn the VPN off and retry on the direct connection. If the 408 disappears, the detour was the problem — reconnect to a closer, faster server, or leave the VPN off while you use this particular site.
- If you run the site, raise the request timeouts. When real users on decent connections keep hitting 408, your limits are tighter than your traffic. In nginx, raise
client_header_timeoutandclient_body_timeoutfrom their 60-second defaults in thehttp,server, orlocationblock, then reload withnginx -s reload. In Apache, raiseTimeoutand addRequestReadTimeout header=30,MinRate=500 body=30,MinRate=500. In PHP, raisemax_input_timealongsidemax_execution_time. Increase in steps, measure, and stop when legitimate users stop timing out — timeouts exist to shed abusive connections, so do not remove them.
Did this fix it? Quick checklist
- The action was retried exactly once on a stable connection — no rapid refresh loops on the same slow network
- Any large upload was shrunk, compressed, or split, and the transfer ran to completion without pausing or switching tabs
- The VPN or proxy was turned off for a test, and cookies plus cached files were cleared in a fresh browser session
- Site owners: header and body timeouts raised in measured steps, and slow pages or overloaded server workers ruled out
One more spot to check if it still fails: try the same action from a completely different network, like your phone's mobile data with Wi-Fi off. If it works there but never on your home connection, your ISP or router is stalling outbound traffic — a router reboot and a speed test that includes an upload check will usually confirm it. And if the 408 appears only at certain hours, you may be fighting peak-time congestion on your connection or the site's; trying the upload during off-peak hours is a legitimate workaround while the underlying cause gets sorted.
Frequently asked questions
What does 408 Request Timeout mean?
It means the server started receiving your request but the rest of it never arrived in time, so the server gave up waiting and closed the connection. Think of it as the server holding the door open for you and eventually closing it because you took too long to walk through. It usually points to a slow connection, an interrupted upload, or a server timeout set too aggressively.
Is a 408 error my fault or the website's?
It can be either. If your connection is slow or dropped mid-request — weak Wi-Fi, a flaky mobile signal, or a VPN adding lag — the delay is on your side. If you have a fast, stable connection and the 408 still appears on a form or upload, the website's timeout is probably set too low for what it asks visitors to send, and the site owner needs to raise it.
How is 408 different from 504 Gateway Timeout?
They fail on opposite sides of the conversation. A 408 means your request never finished reaching the server — the server waited on you. A 504 means your request reached the server fine, but the server's own upstream (a database, an API, a PHP worker) took too long to answer, so the gateway gave up on it. Fix 408 by steadying your connection or upload; fix 504 by speeding up whatever runs behind the site.
I run the website — how do I stop 408s for my visitors?
Raise the timeouts that govern incoming requests: in nginx that is client_header_timeout and client_body_timeout; in Apache it is Timeout and RequestReadTimeout; in PHP it is max_input_time. Also check why requests are slow to arrive — a page that forces huge multipart uploads over slow mobile links will keep timing out no matter the limit, so accept chunked uploads or smaller files where you can. Raise in steps and watch real-user 408 rates fall before locking the values in.