499
HTTPERRORNotable4xx Client Error (Unofficial)HIGH confidence

Client Closed Request

Production Risk

Low — a high 499 rate is a performance signal, not a server failure.

What this means

499 Client Closed Request is an nginx-specific code logged when a client closes the connection while nginx is still processing the request. It is recorded in nginx's access log but is never sent to the client (since the connection is already gone). Also used by Esri as 'Token Required'.

Why it happens
  1. 1The user navigated away or closed the browser tab while the server was processing the request.
  2. 2The client application timed out and closed the connection.
  3. 3A network interruption severed the connection mid-request.
  4. 4A proxy in front of nginx closed the upstream connection due to its own timeout.
How to reproduce

A user clicks a button that triggers a slow API call, then navigates away before the response arrives.

trigger — this will error
trigger — this will error
POST /api/slow-operation HTTP/1.1
Host: example.com
# Client closes connection after 3s; server still working

expected output

nginx access log: 499 (connection closed by client)

Fix 1

Increase client-side timeout to match server processing time

WHEN Legitimate requests are being abandoned due to short client timeouts.

Increase client-side timeout to match server processing time
// Axios example
axios.defaults.timeout = 30000; // 30 seconds

Why this works

Prevents the client from giving up before the server finishes processing.

Fix 2

Monitor 499 rate for performance issues

WHEN High 499 rate indicates slow responses causing client abandonment.

Monitor 499 rate for performance issues
# In nginx log analysis:
awk '$9 == 499' /var/log/nginx/access.log | wc -l

Why this works

High 499 counts are a signal that responses are too slow — optimise the backend.

What not to do

Do not treat 499 as a server error in alerting

499 is client-initiated; it indicates the client gave up, not that the server failed.

Version notes
nginx

nginx-specific. Appears in access logs only; never sent as an HTTP response.

ArcGIS

Esri uses 499 as 'Token Required' — distinct from the nginx meaning.

Content generated with AI assistance and reviewed for accuracy. Found an error? hello@errcodes.dev

← All HTTP errors