Error map
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 · layer 3, Edge & web server
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.
Directly related (12)
HTTP 500 Internal Server Error
The server hit an unexpected condition — usually an unhandled exception or misconfiguration in the application.
[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.
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.
HTTP 499 Client Closed Request (Nginx)
Nginx-specific code logged when the client disconnected before the server finished responding.
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: 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.
Apache: AH00112: Warning: DocumentRoot [/var/www/example.com/public_html] does not exist
A virtual host points to a directory that doesn't exist.
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.
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.
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.
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.
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.
Two steps away (34)
HTTP 404 Not Found
The server can’t find anything at the requested URL.
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.
HTTP 503 Service Unavailable
The server is temporarily unable to handle the request — overloaded, in maintenance, or has no healthy backends.
Error: Cannot find module 'x' (MODULE_NOT_FOUND)
Node can’t resolve the module path — the package isn’t installed, or a relative path/extension is wrong.
Error: listen EADDRINUSE: address already in use :::3000
Another process is already listening on that port.
HTTP Error 500.30 - ASP.NET Core app failed to start
IIS/Azure’s ASP.NET Core Module launched your app but it crashed during startup.
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.
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.
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.
HTTP 408 Request Timeout
The server closed the connection because the client took too long to send the complete request.
HTTP 504 Gateway Timeout
A proxy or gateway waited too long for the upstream server to respond and gave up.
java.util.concurrent.TimeoutException
A Future.get(timeout) or async operation didn’t complete in the allowed time.
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 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…
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…
Job for nginx.service failed because the control process exited with error code
systemd tried to start the service, but its start command failed. The real reason is in the service’s status/journal.
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 `;`.
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.
Browser: Welcome to nginx! If you see this page, the nginx web server is successfully installed and working
Requests are served by the default server block, not your site's block.
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
Apache's config has a syntax problem or a directive from a module that isn't loaded.
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.
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.
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…
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.
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.
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.
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.
HTTP 407 Proxy Authentication Required
A proxy between you and the server requires credentials before it will forward your request.
HTTP 417 Expectation Failed
The server or a proxy can’t meet the Expect header in the request — almost always Expect: 100-continue.
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.
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.
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.
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.
Certbot: Could not automatically find a matching server block for example.com. Set the `server_name` directive to use the Nginx installer
Certbot's Nginx plugin could not find a `server` block whose `server_name` matches the domain you requested.
Map another error
Popular: 500403400ORA-009331064Critical errorFileNotFoundException assemblyTypeError