Error map

the "listen ... http2" directive is deprecated Nginx: nginx: [warn] the "listen ... http2" directive is deprecated, use the "http2" directive instead

Nginx / Apache · layer 3, Edge & web server

Open the full error page →

Centre: this error. First ring: errors it is linked with (8). 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.

the "listen ... http2" directive is deprecated — Nginx: nginx: [warn] the "listen ... http2" directive is deprecated, use the "http2" directive instead (Nginx / Apache)the "listen…nginx: [emerg] unknown directive — Nginx: nginx: [emerg] unknown directive "x" in /etc/nginx/sites-enabled/x:12 — configuration file test failed (Nginx / Apache)nginx: [emerg] unkn…410 — HTTP 410 Gone (HTTP)410499 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…SSL_CTX_set_tmp_dh failed: dh key too small — Nginx: [emerg] SSL_CTX_set_tmp_dh("/etc/ssl/dhparam.pem") failed (SSL: error:1401E0A8:SSL routines:... dh key too small) (SSL / TLS)SSL_CTX_set_tmp_dh …ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY — Chrome: ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY — HTTP/2 requires a modern TLS cipher (SSL / TLS)ERR_HTTP2_INADEQUAT…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…413 — HTTP 413 Content Too Large (Request Entity Too Large) (HTTP)413redirect_uri_mismatch — OAuth Error: redirect_uri_mismatch (Authentication)redirect_uri_mismat…DB connection — WordPress: Error Establishing a Database Connection (WordPress)DB connection400 — HTTP 400 Bad Request (HTTP)400404 — HTTP 404 Not Found (HTTP)404301 — HTTP 301 Moved Permanently (HTTP)301500 — HTTP 500 Internal Server Error (HTTP)500504 — HTTP 504 Gateway Timeout (HTTP)504499 — HTTP 499 Client Closed Request (Nginx) (HTTP)499bind() 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: …upstream timed out — Nginx: upstream timed out (110: Connection timed out) while reading response header from upstream (Nginx / Apache)upstream timed outSSL_CTX_use_PrivateKey_file failed (key values mismatch) — Nginx: [emerg] SSL_CTX_use_PrivateKey_file("/etc/ssl/server.key") failed (SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch) (SSL / TLS)SSL_CTX_use_Private…ERR_SSL_VERSION_OR_CIPHER_MISMATCH — Chrome: This site can’t provide a secure connection — uses an unsupported protocol. ERR_SSL_VERSION_OR_CIPHER_MISMATCH (Browser)ERR_SSL_VERSION_OR_…sslv3 alert handshake failure — OpenSSL: error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure (SSL alert number 40) (SSL / TLS)sslv3 alert handsha…no "ssl_certificate" is defined for the "listen ... ssl" directive — Nginx: [emerg] no "ssl_certificate" is defined for the "listen ... ssl" directive in /etc/nginx/sites-enabled/default:3 (SSL / TLS)no "ssl_certificate…EMFILE — Too many open files (EMFILE) (Linux)EMFILEfork: 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)1025403 — HTTP 403 Forbidden (HTTP)4031020 — Cloudflare Error 1020: Access Denied (Cloudflare)1020cf-mitigated: challenge — API/app requests get 403 with cf-mitigated: challenge (Bot Fight Mode / challenge on non-browser clients) (Cloudflare)cf-mitigated: chall…Link expired — WordPress: The link you followed has expired (WordPress)Link expired100 — HTTP 100 Continue (HTTP)100417 — HTTP 417 Expectation Failed (HTTP)417

Directly related (8)

nginx: [emerg] unknown directiveNginx / Apache

Nginx: nginx: [emerg] unknown directive "x" in /etc/nginx/sites-enabled/x:12 — configuration file test failed

Nginx found a directive it doesn’t know — a typo, a missing semicolon on the previous line, a directive from a module that isn’t…

410HTTP

HTTP 410 Gone

The resource used to exist but was intentionally and permanently removed, with no forwarding address.

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.

SSL_CTX_set_tmp_dh failed: dh key too smallSSL / TLS

Nginx: [emerg] SSL_CTX_set_tmp_dh("/etc/ssl/dhparam.pem") failed (SSL: error:1401E0A8:SSL routines:... dh key too small)

The Diffie-Hellman parameters file is too weak (e.g. 512 or 768 bit) for the current OpenSSL security level.

ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITYSSL / TLS

Chrome: ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY — HTTP/2 requires a modern TLS cipher

The server speaks HTTP/2 but negotiated a TLS version or cipher that HTTP/2 forbids (blocklisted ciphers or TLS below 1.2).

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.

Two steps away (24)

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.

redirect_uri_mismatchAuthentication

OAuth Error: redirect_uri_mismatch

The redirect URI in your OAuth request doesn’t exactly match one registered for the client in the provider’s console.

DB connectionWordPress

WordPress: Error Establishing a Database Connection

WordPress can’t connect to its MySQL/MariaDB database with the credentials in wp-config.php, or the database server is down.

400HTTP

HTTP 400 Bad Request

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

404HTTP

HTTP 404 Not Found

The server can’t find anything at the requested URL.

301HTTP

HTTP 301 Moved Permanently

The resource has a new permanent URL; clients and search engines should use the address in the Location header from now on.

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.

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…

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.

SSL_CTX_use_PrivateKey_file failed (key values mismatch)SSL / TLS

Nginx: [emerg] SSL_CTX_use_PrivateKey_file("/etc/ssl/server.key") failed (SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch)

The private key does not belong to the certificate configured in the server.

ERR_SSL_VERSION_OR_CIPHER_MISMATCHBrowser

Chrome: This site can’t provide a secure connection — uses an unsupported protocol. ERR_SSL_VERSION_OR_CIPHER_MISMATCH

The browser and the server could not agree on a TLS version or cipher — the server is too old or misconfigured, or the browser is.

sslv3 alert handshake failureSSL / TLS

OpenSSL: error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure (SSL alert number 40)

The server aborted the handshake with alert 40 — no acceptable parameters (cipher, signature algorithm, client certificate or SNI…

no "ssl_certificate" is defined for the "listen ... ssl" directiveSSL / TLS

Nginx: [emerg] no "ssl_certificate" is defined for the "listen ... ssl" directive in /etc/nginx/sites-enabled/default:3

A server block listens with `ssl` but has no `ssl_certificate` and `ssl_certificate_key`.

EMFILELinux

Too many open files (EMFILE)

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

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).

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…

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…

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.

417HTTP

HTTP 417 Expectation Failed

The server or a proxy can’t meet the Expect header in the request — almost always Expect: 100-continue.