What Is the 499 Status Code? (Client Closed Request)
On this page
HTTP 499 Client Closed Request is a non-standard status code, logged by Nginx (and CDNs like Cloudflare) when the client closes the connection before the server finishes sending a response. It isn't returned to the browser — there's no one left to receive it — so you see 499 in server or CDN logs, not as a page. For scrapers, a 499 usually means your own client gave up (a timeout that's too aggressive, a cancelled request, or a killed worker) while the origin was still working on a slow response.
Quick facts
| Status code | 499 (non-standard, Nginx) |
|---|---|
| Meaning | Client Closed Request |
| Where you see it | Nginx / CDN access logs, not in the browser |
| Common causes (scraping) | Client timeout too low, cancelled request, slow origin or proxy |
| Right response | Raise client/read timeouts, lower concurrency, retry with backoff |
Related terms
Concept map
How 499 Status Code (499 Error) connects
The terms most directly tied to this one. Hover a node to see its neighbours, click to preview, drag to rearrange.
Tools & solutions for this topic
Frequently asked questions
Is 499 a real HTTP status code?
Not in the official spec. It's a non-standard code introduced by Nginx to mean "Client Closed Request" and is widely used in server and CDN logs. Browsers never display it because the client has already disconnected.
Why do I see 499 when scraping but my request just timed out?
They're two views of the same event. Your HTTP client reports a timeout/aborted connection; the origin's Nginx logs that same abort as a 499. Increase your timeout and the 499s usually disappear.
Does a 499 mean I'm blocked?
Not directly. 499 is about a closed connection, not a refusal. But it often appears alongside blocking — a site that's slow-walking or challenging your request can push your client past its timeout, producing 499s as a side effect.
How do I stop getting 499 errors?
Raise read/connect timeouts, retry with backoff, reduce concurrency, and use reliable proxies so responses arrive before your client gives up. If a site is slow because it's anti-bot-challenging you, offload the wait to a scraping API.
Last updated: 2026-05-28