Error map

worker_connections are not enough Nginx: [alert] 1234#1234: *987 1024 worker_connections are not enough while connecting to upstream

Nginx / Apache · layer 3, Edge & web server

Open the full error page →

Centre: this error. First ring: errors it is linked with (10). Outer ring: what those are linked with. Colours show the layer of a request each error belongs to. Click any dot to re-centre the map on it; hover to follow its connections. The centre dot opens the error page.

worker_connections are not enough — Nginx: [alert] 1234#1234: *987 1024 worker_connections are not enough while connecting to upstream (Nginx / Apache)worker_conn…upstream timed out — Nginx: upstream timed out (110: Connection timed out) while reading response header from upstream (Nginx / Apache)upstream timed outEMFILE — Too many open files (EMFILE) (Linux)EMFILE499 Client Closed Request / client prematurely closed connection — Nginx: [info] client prematurely closed connection while reading response header from upstream / access log status 499 (Nginx / Apache)499 Client Closed R…accept4() failed (24: Too many open files) — Nginx: [crit] accept4() failed (24: Too many open files) / open() failed (24: Too many open files) (Nginx / Apache)accept4() failed (2…ModSecurity: Access denied with code 403 — Nginx/Apache: ModSecurity: Access denied with code 403 (phase 2). Matched "Operator GE matched 5 at TX:anomaly_score" (Nginx / Apache)ModSecurity: Access…nginx: client intended to send too large body — Nginx: [error] client intended to send too large body: 5242880 bytes (413 Request Entity Too Large) (Nginx / Apache)nginx: client inten…limiting requests, excess: (503 from limit_req) — Nginx: [error] limiting requests, excess: 5.370 by zone "perip", client: 203.0.113.5 (Nginx / Apache)limiting requests, …414 Request-URI Too Large / 400 Request Header Or Cookie Too Large — Nginx: 400 Bad Request — Request Header Or Cookie Too Large / client sent too long header line (Nginx / Apache)414 Request-URI Too…AH00161: server reached MaxRequestWorkers setting — Apache: [mpm_event:error] AH00484: server reached MaxRequestWorkers setting, consider raising the MaxRequestWorkers setting (Nginx / Apache)AH00161: server rea…AH00288: scoreboard is full, not at MaxRequestWorkers — Apache: [mpm_event:error] AH00288: scoreboard is full, not at MaxRequestWorkers. Increase ServerLimit (Nginx / Apache)AH00288: scoreboard…2006 — MySQL ERROR 2006 (HY000): MySQL server has gone away (MySQL)2006408 — HTTP 408 Request Timeout (HTTP)408502 — HTTP 502 Bad Gateway (HTTP)502ENOENT — Error: ENOENT: no such file or directory (Node.js)ENOENTECONNRESET — Error: socket hang up / read ECONNRESET (API)ECONNRESET1040 — MySQL ERROR 1040 (08004): Too many connections (MySQL)1040500 — HTTP 500 Internal Server Error (HTTP)500504 — HTTP 504 Gateway Timeout (HTTP)504499 — HTTP 499 Client Closed Request (Nginx) (HTTP)499fork: retry: Resource temporarily unavailable — fork: retry: Resource temporarily unavailable (process/thread limit) (Linux)fork: retry: Resour…1025 — Cloudflare Error 1025: Please check back later (Workers request limit) (Cloudflare)10251102 — Cloudflare Error 1102: Worker exceeded resource limits (CPU time / memory) (Cloudflare)1102403 — HTTP 403 Forbidden (HTTP)4031020 — Cloudflare Error 1020: Access Denied (Cloudflare)1020bind() failed (98: Address already in use) — nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) (Linux)bind() failed (98: …413 — HTTP 413 Content Too Large (Request Entity Too Large) (HTTP)413Link expired — WordPress: The link you followed has expired (WordPress)Link expired100 — HTTP 100 Continue (HTTP)100429 — HTTP 429 Too Many Requests (HTTP)429cf-mitigated: challenge — API/app requests get 403 with cf-mitigated: challenge (Bot Fight Mode / challenge on non-browser clients) (Cloudflare)cf-mitigated: chall…too many certificates already issued — Let's Encrypt: urn:ietf:params:acme:error:rateLimited :: too many certificates (5) already issued for this exact set of identifiers in the last 168 hours (SSL / TLS)too many certificat…400 — HTTP 400 Bad Request (HTTP)400Headers already sent — Warning: Cannot modify header information - headers already sent (PHP)Headers already sent411 — HTTP 411 Length Required (HTTP)411503 — HTTP 503 Service Unavailable (HTTP)503524 — Cloudflare Error 524: A Timeout Occurred (Cloudflare)524304 — HTTP 304 Not Modified (HTTP)304103 — HTTP 103 Early Hints (HTTP)1031200 — Cloudflare Error 1200: Cache connection limit (Cloudflare)1200cf-cache-status: DYNAMIC — Cloudflare not caching: cf-cache-status DYNAMIC / BYPASS / MISS every time (Cloudflare)cf-cache-status: DY…

Directly related (10)

upstream timed outNginx / Apache

Nginx: upstream timed out (110: Connection timed out) while reading response header from upstream

Nginx waited longer than proxy_read_timeout (60 s default) for the backend (app server, PHP-FPM) to respond, then returned 504.

EMFILELinux

Too many open files (EMFILE)

The process hit its file-descriptor limit — sockets, files and pipes all count.

499 Client Closed Request / client prematurely closed connectionNginx / Apache

Nginx: [info] client prematurely closed connection while reading response header from upstream / access log status 499

The client (browser, mobile app, load balancer) disconnected before Nginx finished the response; Nginx logs status 499.

accept4() failed (24: Too many open files)Nginx / Apache

Nginx: [crit] accept4() failed (24: Too many open files) / open() failed (24: Too many open files)

Nginx workers hit the file-descriptor limit and can't accept or open more.

ModSecurity: Access denied with code 403Nginx / Apache

Nginx/Apache: ModSecurity: Access denied with code 403 (phase 2). Matched "Operator GE matched 5 at TX:anomaly_score"

The ModSecurity WAF (OWASP Core Rule Set) blocked the request as suspicious.

nginx: client intended to send too large bodyNginx / Apache

Nginx: [error] client intended to send too large body: 5242880 bytes (413 Request Entity Too Large)

A request body exceeded `client_max_body_size` (default 1 MB), so Nginx returned 413 before reaching your app.

limiting requests, excess: (503 from limit_req)Nginx / Apache

Nginx: [error] limiting requests, excess: 5.370 by zone "perip", client: 203.0.113.5

`limit_req` rejected requests because the client exceeded the configured rate (burst) — response 503 (or 429).

414 Request-URI Too Large / 400 Request Header Or Cookie Too LargeNginx / Apache

Nginx: 400 Bad Request — Request Header Or Cookie Too Large / client sent too long header line

The request line or headers (often cookies) exceed `large_client_header_buffers`.

AH00161: server reached MaxRequestWorkers settingNginx / Apache

Apache: [mpm_event:error] AH00484: server reached MaxRequestWorkers setting, consider raising the MaxRequestWorkers setting

Apache used all its worker slots, so new requests queue or time out.

AH00288: scoreboard is full, not at MaxRequestWorkersNginx / Apache

Apache: [mpm_event:error] AH00288: scoreboard is full, not at MaxRequestWorkers. Increase ServerLimit

The shared scoreboard (process table) has no free slot even though the request limit isn't reached.

Two steps away (30)

2006MySQL

MySQL ERROR 2006 (HY000): MySQL server has gone away

The connection to MySQL was closed — usually by a timeout or a packet larger than `max_allowed_packet`.

408HTTP

HTTP 408 Request Timeout

The server closed the connection because the client took too long to send the complete request.

502HTTP

HTTP 502 Bad Gateway

A proxy or gateway (Nginx, load balancer, CDN) got an invalid response — or no response — from the upstream server behind it.

ENOENTNode.js

Error: ENOENT: no such file or directory

A file or directory the program tried to open doesn’t exist at that path.

ECONNRESETAPI

Error: socket hang up / read ECONNRESET

The other side closed the TCP connection abruptly while your client was still using it.

1040MySQL

MySQL ERROR 1040 (08004): Too many connections

MySQL reached `max_connections` and refuses new clients.

500HTTP

HTTP 500 Internal Server Error

The server hit an unexpected condition — usually an unhandled exception or misconfiguration in the application.

504HTTP

HTTP 504 Gateway Timeout

A proxy or gateway waited too long for the upstream server to respond and gave up.

499HTTP

HTTP 499 Client Closed Request (Nginx)

Nginx-specific code logged when the client disconnected before the server finished responding.

fork: retry: Resource temporarily unavailableLinux

fork: retry: Resource temporarily unavailable (process/thread limit)

The user or container hit its maximum number of processes/threads (ulimit -u, pids cgroup), so new processes can’t be created.

1025Cloudflare

Cloudflare Error 1025: Please check back later (Workers request limit)

The site’s Cloudflare Workers plan exceeded its daily request limit (free plan: 100,000 requests/day).

1102Cloudflare

Cloudflare Error 1102: Worker exceeded resource limits (CPU time / memory)

The Worker used more CPU time or memory than its plan allows for a single request.

403HTTP

HTTP 403 Forbidden

The server understood the request but refuses to authorize it — you (or the server process) are not allowed to access this resour…

1020Cloudflare

Cloudflare Error 1020: Access Denied

A Cloudflare firewall/WAF custom rule blocked the request — the visitor’s IP, country, user agent or request pattern matched a bl…

bind() failed (98: Address already in use)Linux

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

Nginx (or another server) can’t listen on the port because another process already holds it — often Apache, another Nginx, or a s…

413HTTP

HTTP 413 Content Too Large (Request Entity Too Large)

The request body is bigger than the server is willing to accept — usually a file upload over the configured limit.

Link expiredWordPress

WordPress: The link you followed has expired

Usually an upload (theme, plugin, media) larger than PHP’s upload/post limits — WordPress receives an empty request and shows thi…

100HTTP

HTTP 100 Continue

An interim response telling the client to go ahead and send the request body — normal when the client sent Expect: 100-continue.

429HTTP

HTTP 429 Too Many Requests

You’ve hit a rate limit — too many requests in a given time window. Slow down and retry later.

cf-mitigated: challengeCloudflare

API/app requests get 403 with cf-mitigated: challenge (Bot Fight Mode / challenge on non-browser clients)

Cloudflare is answering API calls, webhooks or mobile-app requests with a challenge page (HTML 403) because bot protection treats…

too many certificates already issuedSSL / TLS

Let's Encrypt: urn:ietf:params:acme:error:rateLimited :: too many certificates (5) already issued for this exact set of identifiers in the last 168 hours

You hit a Let's Encrypt rate limit — too many certificates, failed validations or new orders in a period.

400HTTP

HTTP 400 Bad Request

The server could not understand the request because its syntax, headers or body are malformed or invalid.

Headers already sentPHP

Warning: Cannot modify header information - headers already sent

You called `header()`, `setcookie()` or `session_start()` after output had already been sent to the browser.

411HTTP

HTTP 411 Length Required

The server refuses a request with a body but no Content-Length header.

503HTTP

HTTP 503 Service Unavailable

The server is temporarily unable to handle the request — overloaded, in maintenance, or has no healthy backends.

524Cloudflare

Cloudflare Error 524: A Timeout Occurred

Cloudflare connected to the origin, but the origin didn’t send an HTTP response within 100 seconds.

304HTTP

HTTP 304 Not Modified

The cached copy is still valid, so the server sends no body and the client reuses its cache.

103HTTP

HTTP 103 Early Hints

An interim response that sends Link headers early so the browser can preload CSS, fonts or scripts while the server is still buil…

1200Cloudflare

Cloudflare Error 1200: Cache connection limit

Too many requests are queued at Cloudflare for the origin — the origin is slow and connections pile up.

cf-cache-status: DYNAMICCloudflare

Cloudflare not caching: cf-cache-status DYNAMIC / BYPASS / MISS every time

Cloudflare isn’t caching the response — HTML isn’t cached by default, and cookies or Cache-Control headers from the origin preven…