What does HTTP 499 mean?
Nginx logs 499 when the client closed the connection before the server answered. The client never sees this code — it appears only in Nginx access logs. It usually means the upstream application was too slow and the user or a load balancer gave up.
4xx Client error: The request has a problem the client can fix: wrong URL, missing credentials, bad data or too many requests.
Common causes of a 499 error
- Slow upstream application or database queries.
- Load balancer timeout shorter than the backend’s.
How to fix 499 Client Closed Request
- Profile slow requests and add caching.
- Align timeouts across load balancer, proxy and app.
499 and SEO
Indicates slowness that also affects crawlers.
Example response
HTTP/1.1 499 Client Closed Request
How to return a 499 response
Node.js (Express)
res.status(499).json({ error: 'Client Closed Request' });PHP
http_response_code(499);Python (Flask)
return {'error': 'Client Closed Request'}, 499Go (net/http)
w.WriteHeader(499)nginx
return 499;
Related status codes
- 504 Gateway Timeout — A gateway or proxy did not get a response from the upstream server in time.
- 408 Request Timeout — The server timed out waiting for the client to send the request.
- 502 Bad Gateway — A gateway or proxy got an invalid response from the upstream server.
Check which status code a URL returns with the HTTP header checker.