Client Closed Request — Nginx logged that the client closed the connection first
What 499 Means
The 499 error on the Nginx Server-Errors indicates client closed request — nginx logged that the client closed the connection first. This typically occurs due to browser tab or mobile app closes mid-request.
Nginx 499 is a non-standard log status used when the client closes the connection before Nginx can finish sending the response. It usually appears in Nginx access logs rather than as a response a browser can display directly. The upstream application may still be processing when the disconnect happens, which is why 499 often appears near slow endpoints, impatient clients, or intermediary timeouts.
Technical Background
Unlike standard HTTP 4xx responses, 499 is mainly observational. It records that the client side of the connection disappeared before Nginx could finish the exchange, which means the server was not the side that ended the request first.
That makes 499 useful when separating application slowness from outright server failure. If large numbers of 499 entries appear together with long upstream response times, the common pattern is that clients or intermediaries are abandoning the request before the backend completes its work.
Common Causes
- Browser tab or mobile app closes mid-request
- Client timeout is shorter than server processing time
- Load balancer abandons the connection early
- Network interruption breaks the request or response path
Typical Scenarios
- A user closes the tab before a slow page finishes loading
- A mobile network drop interrupts the connection during a large response
- An upstream request runs long enough that an intermediary gives up first
What to Know
A 499 is primarily a log-side signal rather than a user-facing response. Spikes usually point to slow endpoints, intermediary timeout behavior, unstable networks, or request processing that takes long enough for clients to abandon the connection first.
Frequently Asked Questions
Common questions about Nginx 499 error
No. It is an Nginx-specific log status that records the client closing the connection before the server completed the response.
Because the client has already disconnected, there may be no visible status page to render. The code is often mainly useful to operators reviewing access logs and request timing patterns.
No. It can point to slow backend work, but it can also be caused by users leaving the page, aggressive intermediary timeouts, or unstable client-side network conditions.