Errors by Type and Error Rate

Errors by type

When a run had failures, the Errors tab shows an Errors by type table above the chart: one row per (type, request) with the count and the share of all errors. The type is either an HTTP status code or, for failures that never got a response, the error the load generator recorded.

The types you will see

  • 4xx - the request was rejected: 401/403 authentication, 404 a wrong URL or a missing fixture, 429 rate limiting. These usually mean the script or the test data, not capacity.
  • 5xx - the server failed: 500 application errors, 502/503/504 an overloaded or restarting backend behind a proxy. These grow with load when capacity runs out.
  • SSLException / SSLHandshakeException - the TLS handshake failed, typically an expired certificate, a protocol mismatch or a server dropping handshakes under load.
  • HttpHostConnectException / ConnectException - no TCP connection at all: the host is down, a firewall drops the generator's IP, or the listen backlog is full.
  • SocketException / NoHttpResponseException / SocketTimeoutException - the connection opened but the server closed it or never answered: worker exhaustion, an upstream timeout, a keep-alive limit.

Sort by count, then open the request in the Stats table to see its response times.

Error rate %

The Error rate % toggle in the sidebar adds a line with the share of failed requests per second, computed from the individual samples. Read it together with the virtual-users line on the Timeline tab: an error rate that starts at a specific user count is a capacity limit; one that is constant from the first second is a script or environment problem.

See also common HTTP error codes.