Error map

AH00526: Syntax error on line of apache config Apache: AH00526: Syntax error on line 12 of /etc/apache2/sites-enabled/site.conf: Invalid command 'Foo', perhaps misspelled or defined by a module not included in the server configuration

Nginx / Apache · layer 3, Edge & web server

Open the full error page →

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

AH00526: Syntax error on line of apache config — Apache: AH00526: Syntax error on line 12 of /etc/apache2/sites-enabled/site.conf: Invalid command 'Foo', perhaps misspelled or defined by a module not included in the server configuration (Nginx / Apache)AH00526: Sy…Parse error — PHP Parse error: syntax error, unexpected … (PHP)Parse errorAH00558 — Apache: AH00558: apache2: Could not reliably determine the server's fully qualified domain name (Nginx / Apache)AH00558SSLCertificateFile: file does not exist — Apache: AH02240: Server should be SSL-aware but has no certificate configured / SSLCertificateFile: file '/etc/ssl/x.crt' does not exist or is empty (SSL / TLS)SSLCertificateFile:…nginx: directive is not terminated by ";" — Nginx: nginx: [emerg] directive "proxy_pass" is not terminated by ";" in /etc/nginx/sites-enabled/app:15 (Nginx / Apache)nginx: directive is…AH00112: DocumentRoot does not exist — Apache: AH00112: Warning: DocumentRoot [/var/www/example.com/public_html] does not exist (Nginx / Apache)AH00112: DocumentRo…AH00072: make_sock: could not bind to address 0.0.0.0:80 — Apache: (98)Address already in use: AH00072: make_sock: could not bind to address [::]:80 / AH00015: Unable to open logs (Nginx / Apache)AH00072: make_sock:…AH00124: Request exceeded the limit of 10 internal redirects — Apache: AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary (Nginx / Apache)AH00124: Request ex…AH00898: Error reading from remote server (502 Proxy Error) — Apache: [proxy_http:error] AH01102: error reading status line from remote server 127.0.0.1:3000 / AH00898: Error reading from remote server returned by /api (Nginx / Apache)AH00898: Error read…AH01114: HTTP: failed to make connection to backend — Apache: [proxy:error] AH00957: HTTP: attempt to connect to 127.0.0.1:3000 (127.0.0.1) failed / AH01114: HTTP: failed to make connection to backend: 127.0.0.1 (Nginx / Apache)AH01114: HTTP: fail…AH01909: server certificate does NOT include an ID which matches the server name — Apache: [ssl:warn] AH01909: example.com:443:0 server certificate does NOT include an ID which matches the server name (SSL / TLS)AH01909: server cer…nginx: [emerg] unexpected end of file, expecting ";" or "}" — Nginx: nginx: [emerg] unexpected end of file, expecting ";" or "}" in /etc/nginx/conf.d/site.conf:42 (Nginx / Apache)nginx: [emerg] unex…AH00015: Unable to open logs — Apache: AH00091: apache2: could not open error log file /var/log/apache2/error.log. AH00015: Unable to open logs (Permission denied) (Nginx / Apache)AH00015: Unable to …1064 — MySQL ERROR 1064 (42000): You have an error in your SQL syntax (MySQL)1064500 — HTTP 500 Internal Server Error (HTTP)500IndentationError — IndentationError: unexpected indent / expected an indented block (Python)IndentationError413 — 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 connectionERR_TOO_MANY_REDIRECTS (Cloudflare) — ERR_TOO_MANY_REDIRECTS with Cloudflare (Flexible SSL redirect loop) (Cloudflare)ERR_TOO_MANY_REDIRE…ERR_SSL_VERSION_OR_CIPHER_MISMATCH (Cloudflare) — ERR_SSL_VERSION_OR_CIPHER_MISMATCH on a Cloudflare site (certificate not issued / multi-level subdomain) (Cloudflare)ERR_SSL_VERSION_OR_…Cloudflare Origin CA not trusted — NET::ERR_CERT_AUTHORITY_INVALID with a Cloudflare Origin Certificate (record not proxied) (Cloudflare)Cloudflare Origin C…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…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…nginx: duplicate location — Nginx: nginx: [emerg] duplicate location "/" in /etc/nginx/sites-enabled/default:52 (Nginx / Apache)nginx: duplicate lo…nodemon crashed — [nodemon] app crashed - waiting for file changes before starting... (Node.js)nodemon crashednginx: bind() to 0.0.0.0:80 failed (13: Permission denied) — Nginx: nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied) (Nginx / Apache)nginx: bind() to 0.…nginx: invalid PID number in nginx.pid — Nginx: nginx: [error] invalid PID number "" in "/run/nginx.pid" (when running nginx -s reload) (Nginx / Apache)nginx: invalid PID …EADDRINUSE — Error: listen EADDRINUSE: address already in use :::3000 (Node.js)EADDRINUSElisten EACCES — Error: listen EACCES: permission denied 0.0.0.0:80 (Node.js)listen EACCESbind() 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: …404 except homepage — WordPress: 404 Not Found on every page except the homepage (permalinks / .htaccess / Nginx rules) (WordPress)404 except homepagerewrite or internal redirection cycle — Nginx: [error] rewrite or internal redirection cycle while internally redirecting to "/index.php" (500 Internal Server Error) (Nginx / Apache)rewrite or internal….htaccess: Invalid command (500 Internal Server Error) — Apache: [core:alert] /var/www/html/.htaccess: Invalid command 'php_value', perhaps misspelled or defined by a module not included in the server configuration (Nginx / Apache).htaccess: Invalid …407 — HTTP 407 Proxy Authentication Required (HTTP)407502 — HTTP 502 Bad Gateway (HTTP)502417 — HTTP 417 Expectation Failed (HTTP)417503 — HTTP 503 Service Unavailable (HTTP)503511 — HTTP 511 Network Authentication Required (HTTP)511connect() failed (111: Connection refused) while connecting to upstream — Nginx: [error] connect() failed (111: Connection refused) while connecting to upstream, upstream: "http://127.0.0.1:3000/" (Nginx / Apache)connect() failed (1…SEC_ERROR_EXPIRED_CERTIFICATE — Firefox: Peer's Certificate has expired. Error code: SEC_ERROR_EXPIRED_CERTIFICATE (SSL / TLS)SEC_ERROR_EXPIRED_C…SSL_ERROR_BAD_CERT_DOMAIN — Firefox: Websites prove their identity via certificates — the certificate is only valid for other names. Error code: SSL_ERROR_BAD_CERT_DOMAIN (SSL / TLS)SSL_ERROR_BAD_CERT_…UNABLE_TO_VERIFY_LEAF_SIGNATURE — Node.js: Error: unable to verify the first certificate (code: UNABLE_TO_VERIFY_LEAF_SIGNATURE) (SSL / TLS)UNABLE_TO_VERIFY_LE…nginx: conflicting server name ignored — Nginx: nginx: [warn] conflicting server name "example.com" on 0.0.0.0:80, ignored (Nginx / Apache)nginx: conflicting …nginx: [emerg] open() failed (2: No such file or directory) — Nginx: nginx: [emerg] open() "/etc/nginx/snippets/fastcgi-php.conf" failed (2: No such file or directory) in /etc/nginx/sites-enabled/app:20 (Nginx / Apache)nginx: [emerg] open…could not build the server_names_hash, you should increase server_names_hash_bucket_size — Nginx: nginx: [emerg] could not build the server_names_hash, you should increase server_names_hash_bucket_size: 64 (Nginx / Apache)could not build the…499 — HTTP 499 Client Closed Request (Nginx) (HTTP)499AH01630: client denied by server configuration — Apache: [authz_core:error] AH01630: client denied by server configuration: /var/www/html/ (Nginx / Apache)AH01630: client den…AH00037: Symbolic link not allowed or link target not accessible — Apache: [core:error] AH00037: Symbolic link not allowed or link target not accessible: /var/www/html/current (Nginx / Apache)AH00037: Symbolic l…

Directly related (12)

Parse errorPHP

PHP Parse error: syntax error, unexpected …

PHP can’t parse the file because of a syntax mistake — the real error is often on the line before the one reported.

AH00558Nginx / Apache

Apache: AH00558: apache2: Could not reliably determine the server's fully qualified domain name

A harmless startup warning: Apache has no global ServerName, so it guessed one from the host’s IP.

SSLCertificateFile: file does not existSSL / TLS

Apache: AH02240: Server should be SSL-aware but has no certificate configured / SSLCertificateFile: file '/etc/ssl/x.crt' does not exist or is empty

Apache cannot find the certificate or key file named in its configuration, or `SSLEngine on` is set without any certificate.

nginx: directive is not terminated by ";"Nginx / Apache

Nginx: nginx: [emerg] directive "proxy_pass" is not terminated by ";" in /etc/nginx/sites-enabled/app:15

A directive's arguments run into the next line because the `;` is missing (or a quote is unbalanced).

AH00112: DocumentRoot does not existNginx / Apache

Apache: AH00112: Warning: DocumentRoot [/var/www/example.com/public_html] does not exist

A virtual host points to a directory that doesn't exist.

AH00072: make_sock: could not bind to address 0.0.0.0:80Nginx / Apache

Apache: (98)Address already in use: AH00072: make_sock: could not bind to address [::]:80 / AH00015: Unable to open logs

Another process (Nginx, another Apache, Skype/IIS-like service) already listens on the port Apache wants.

AH00124: Request exceeded the limit of 10 internal redirectsNginx / Apache

Apache: AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary

Rewrite rules loop internally, so Apache aborts with a 500.

AH00898: Error reading from remote server (502 Proxy Error)Nginx / Apache

Apache: [proxy_http:error] AH01102: error reading status line from remote server 127.0.0.1:3000 / AH00898: Error reading from remote server returned by /api

mod_proxy couldn't read a valid response from the backend, so Apache returned 502/503.

AH01114: HTTP: failed to make connection to backendNginx / Apache

Apache: [proxy:error] AH00957: HTTP: attempt to connect to 127.0.0.1:3000 (127.0.0.1) failed / AH01114: HTTP: failed to make connection to backend: 127.0.0.1

mod_proxy couldn't connect to the backend address, so the client gets 503/502.

AH01909: server certificate does NOT include an ID which matches the server nameSSL / TLS

Apache: [ssl:warn] AH01909: example.com:443:0 server certificate does NOT include an ID which matches the server name

Apache's SSL virtual host name does not match any name inside the certificate it loads.

nginx: [emerg] unexpected end of file, expecting ";" or "}"Nginx / Apache

Nginx: nginx: [emerg] unexpected end of file, expecting ";" or "}" in /etc/nginx/conf.d/site.conf:42

The config ends while a block or directive is still open — a missing `}` or `;`.

AH00015: Unable to open logsNginx / Apache

Apache: AH00091: apache2: could not open error log file /var/log/apache2/error.log. AH00015: Unable to open logs (Permission denied)

Apache can't open its log files — permissions, a missing directory or disk problems.

Two steps away (36)

1064MySQL

MySQL ERROR 1064 (42000): You have an error in your SQL syntax

MySQL couldn’t parse the query. The text after “near” shows where parsing failed.

500HTTP

HTTP 500 Internal Server Error

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

IndentationErrorPython

IndentationError: unexpected indent / expected an indented block

Python’s block structure is broken — inconsistent indentation or mixed tabs and spaces.

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.

ERR_TOO_MANY_REDIRECTS (Cloudflare)Cloudflare

ERR_TOO_MANY_REDIRECTS with Cloudflare (Flexible SSL redirect loop)

The page redirects to itself forever — classic cause: Cloudflare SSL mode “Flexible” while the origin redirects HTTP to HTTPS.

ERR_SSL_VERSION_OR_CIPHER_MISMATCH (Cloudflare)Cloudflare

ERR_SSL_VERSION_OR_CIPHER_MISMATCH on a Cloudflare site (certificate not issued / multi-level subdomain)

Cloudflare has no edge certificate for the hostname — the Universal SSL cert is still pending, or the hostname is a second-level…

Cloudflare Origin CA not trustedCloudflare

NET::ERR_CERT_AUTHORITY_INVALID with a Cloudflare Origin Certificate (record not proxied)

Cloudflare Origin CA certificates are only trusted by Cloudflare — visitors reaching the origin directly (grey-cloud record, dire…

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…

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

nginx: duplicate locationNginx / Apache

Nginx: nginx: [emerg] duplicate location "/" in /etc/nginx/sites-enabled/default:52

Two `location` blocks with the same match exist in one server block (often from two included files).

nodemon crashedNode.js

[nodemon] app crashed - waiting for file changes before starting...

Your app threw an error on startup; nodemon is waiting for a file change to retry.

nginx: bind() to 0.0.0.0:80 failed (13: Permission denied)Nginx / Apache

Nginx: nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)

Nginx isn't allowed to bind that port — a privileged port as non-root, or SELinux restricts it.

nginx: invalid PID number in nginx.pidNginx / Apache

Nginx: nginx: [error] invalid PID number "" in "/run/nginx.pid" (when running nginx -s reload)

Nginx can't signal the master process because the PID file is empty, stale or missing.

EADDRINUSENode.js

Error: listen EADDRINUSE: address already in use :::3000

Another process is already listening on that port.

listen EACCESNode.js

Error: listen EACCES: permission denied 0.0.0.0:80

Node isn’t allowed to bind that port — ports below 1024 need root on Linux/macOS, and some Windows ports are reserved.

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…

404 except homepageWordPress

WordPress: 404 Not Found on every page except the homepage (permalinks / .htaccess / Nginx rules)

Pretty permalinks aren’t being routed to index.php — .htaccess is missing/ignored (Apache) or Nginx lacks try_files.

rewrite or internal redirection cycleNginx / Apache

Nginx: [error] rewrite or internal redirection cycle while internally redirecting to "/index.php" (500 Internal Server Error)

Nginx kept internally redirecting (more than 10 times), typically from a `try_files` or `rewrite` that points back to itself.

.htaccess: Invalid command (500 Internal Server Error)Nginx / Apache

Apache: [core:alert] /var/www/html/.htaccess: Invalid command 'php_value', perhaps misspelled or defined by a module not included in the server configuration

A `.htaccess` file uses a directive the server can't handle, causing 500 errors for the whole directory.

407HTTP

HTTP 407 Proxy Authentication Required

A proxy between you and the server requires credentials before it will forward your 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.

417HTTP

HTTP 417 Expectation Failed

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

503HTTP

HTTP 503 Service Unavailable

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

511HTTP

HTTP 511 Network Authentication Required

A captive portal (hotel, airport, office Wi-Fi) is intercepting your traffic until you log in or accept its terms.

connect() failed (111: Connection refused) while connecting to upstreamNginx / Apache

Nginx: [error] connect() failed (111: Connection refused) while connecting to upstream, upstream: "http://127.0.0.1:3000/"

Nginx tried to proxy a request but nothing listens on the upstream address, so the client gets 502.

SEC_ERROR_EXPIRED_CERTIFICATESSL / TLS

Firefox: Peer's Certificate has expired. Error code: SEC_ERROR_EXPIRED_CERTIFICATE

Firefox found an expired certificate in the chain presented by the server.

SSL_ERROR_BAD_CERT_DOMAINSSL / TLS

Firefox: Websites prove their identity via certificates — the certificate is only valid for other names. Error code: SSL_ERROR_BAD_CERT_DOMAIN

The certificate does not include the hostname you typed.

UNABLE_TO_VERIFY_LEAF_SIGNATURESSL / TLS

Node.js: Error: unable to verify the first certificate (code: UNABLE_TO_VERIFY_LEAF_SIGNATURE)

Node could not verify the server's leaf certificate because the intermediate certificates were not provided by the server.

nginx: conflicting server name ignoredNginx / Apache

Nginx: nginx: [warn] conflicting server name "example.com" on 0.0.0.0:80, ignored

Two server blocks listen on the same port with the same `server_name`; the second is ignored.

nginx: [emerg] open() failed (2: No such file or directory)Nginx / Apache

Nginx: nginx: [emerg] open() "/etc/nginx/snippets/fastcgi-php.conf" failed (2: No such file or directory) in /etc/nginx/sites-enabled/app:20

The config includes a file (snippet, certificate, ssl option file) that doesn't exist.

could not build the server_names_hash, you should increase server_names_hash_bucket_sizeNginx / Apache

Nginx: nginx: [emerg] could not build the server_names_hash, you should increase server_names_hash_bucket_size: 64

A very long `server_name` (or many names) doesn't fit the hash bucket.

499HTTP

HTTP 499 Client Closed Request (Nginx)

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

AH01630: client denied by server configurationNginx / Apache

Apache: [authz_core:error] AH01630: client denied by server configuration: /var/www/html/

Apache 2.4 authorisation denied access to the directory (403) because no `Require all granted` applies.

AH00037: Symbolic link not allowed or link target not accessibleNginx / Apache

Apache: [core:error] AH00037: Symbolic link not allowed or link target not accessible: /var/www/html/current

Apache refuses to follow a symlink because `FollowSymLinks`/`SymLinksIfOwnerMatch` isn't allowed or the target isn't readable.