Error map

nginx: 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 · 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.

nginx: 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…403 — HTTP 403 Forbidden (HTTP)403session save path — Warning: session_start(): open(/var/lib/php/sessions/sess_x, O_RDWR) failed: Permission denied (PHP)session save pathsudoers — user is not in the sudoers file. This incident will be reported. (Linux)sudoerslisten EACCES — Error: listen EACCES: permission denied 0.0.0.0:80 (Node.js)listen EACCESavc: denied — SELinux is preventing ... / avc: denied { read } for pid=... (permission denied despite correct permissions) (Linux)avc: deniedEPERM — Error: EPERM: operation not permitted, rename / unlink (Node.js)EPERMspawn EACCES — Error: spawn EACCES (Node.js)spawn EACCESLaravel storage — Laravel: The stream or file "storage/logs/laravel.log" could not be opened in append mode: Failed to open stream: Permission denied (PHP)Laravel storagebind() 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: …UNPROTECTED PRIVATE KEY FILE — WARNING: UNPROTECTED PRIVATE KEY FILE! Permissions 0644 for 'key.pem' are too open (Linux)UNPROTECTED PRIVATE…Not allowed — WordPress: Sorry, you are not allowed to access this page. (WordPress)Not allowednginx: 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 …publickey — Git: Permission denied (publickey). fatal: Could not read from remote repository. (Git)publickeyAccessDenied — AWS S3: AccessDenied (403) when calling GetObject / PutObject (AWS)AccessDeniedEACCES — Linux: Permission denied (Linux)EACCESdaemon — Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? (Docker)daemonExpiredToken — AWS: ExpiredToken — The security token included in the request is expired (AWS)ExpiredToken401 — HTTP 401 Unauthorized (HTTP)401dpkg lock — E: Could not get lock /var/lib/dpkg/lock-frontend — is another process using it? (Linux)dpkg lockAccessDeniedException — java.nio.file.AccessDeniedException: /path (Java)AccessDeniedExcepti…clipboard write blocked — NotAllowedError: Failed to execute 'writeText' on 'Clipboard': Document is not focused. (JavaScript)clipboard write blo…EADDRINUSE — Error: listen EADDRINUSE: address already in use :::3000 (Node.js)EADDRINUSEport is already allocated — Docker: Bind for 0.0.0.0:80 failed: port is already allocated (Docker)port is already all…invalid_scope — OAuth 2.0 Error: invalid_scope / insufficient_scope (Authentication)invalid_scopewebhook signature — Webhook signature verification failed (Stripe, Razorpay, GitHub…) (API)webhook signaturepermission denied (volume) — Permission denied writing to a mounted volume inside a Docker container (Docker)permission denied (…REMOTE HOST IDENTIFICATION HAS CHANGED — WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! (ssh host key changed) (Linux)REMOTE HOST IDENTIF…EACCES — npm ERR! code EACCES — permission denied (npm)EACCESEISDIR — Error: EISDIR: illegal operation on a directory, read (Node.js)EISDIRENOTDIR — Error: ENOTDIR: not a directory (Node.js)ENOTDIRENOENT — Error: ENOENT: no such file or directory (Node.js)ENOENTEPIPE — Error: write EPIPE (Node.js)EPIPEmaxBuffer exceeded — RangeError [ERR_CHILD_PROCESS_STDIO_MAXBUFFER]: stdout maxBuffer length exceeded (Node.js)maxBuffer exceededfailed to open stream — Warning: include(x.php): Failed to open stream: No such file or directory (PHP)failed to open stre…No application encryption key — Laravel: No application encryption key has been specified. (PHP)No application encr…419 Page Expired — Laravel: 419 Page Expired (CSRF token mismatch) (PHP)419 Page ExpiredPort 8080 in use — Web server failed to start. Port 8080 was already in use. (Java)Port 8080 in useiptables: No chain/target/match — driver failed programming external connectivity on endpoint: iptables: No chain/target/match by that name (Docker)iptables: No chain/…444 — Nginx 444 No Response (connection closed without response) (HTTP)444ssh port 22 Connection refused — ssh: connect to host x port 22: Connection refused (Linux)ssh port 22 Connect…Too many authentication failures — Received disconnect: Too many authentication failures (Linux)Too many authentica…client_loop: send disconnect: Broken pipe — client_loop: send disconnect: Broken pipe (SSH session drops when idle) (Linux)client_loop: send d…DB connection — WordPress: Error Establishing a Database Connection (WordPress)DB connectionCritical error — WordPress: There Has Been a Critical Error on This Website (WordPress)Critical errorfile_type_not_allowed — Upload error: File type not allowed / unsupported file type (API)file_type_not_allow…Job for x.service failed — Job for nginx.service failed because the control process exited with error code (Linux)Job for x.service f…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…AH00112: DocumentRoot does not exist — Apache: AH00112: Warning: DocumentRoot [/var/www/example.com/public_html] does not exist (Nginx / Apache)AH00112: DocumentRo…

Directly related (12)

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…

session save pathPHP

Warning: session_start(): open(/var/lib/php/sessions/sess_x, O_RDWR) failed: Permission denied

PHP can’t write session files to the configured session.save_path.

sudoersLinux

user is not in the sudoers file. This incident will be reported.

Your account isn’t allowed to use sudo.

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.

avc: deniedLinux

SELinux is preventing ... / avc: denied { read } for pid=... (permission denied despite correct permissions)

SELinux blocked the access — file permissions look fine, but the file’s security context or a boolean doesn’t allow the service t…

EPERMNode.js

Error: EPERM: operation not permitted, rename / unlink

The OS refused a file operation — on Windows usually because another process (antivirus, editor, indexer) has the file locked.

spawn EACCESNode.js

Error: spawn EACCES

Node tried to execute a file that isn’t executable (missing +x permission) or isn’t a program.

Laravel storagePHP

Laravel: The stream or file "storage/logs/laravel.log" could not be opened in append mode: Failed to open stream: Permission denied

The web server can’t write to Laravel’s storage or bootstrap/cache directories.

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…

UNPROTECTED PRIVATE KEY FILELinux

WARNING: UNPROTECTED PRIVATE KEY FILE! Permissions 0644 for 'key.pem' are too open

SSH refuses to use a private key that other users can read; it must be readable only by you (chmod 600).

Not allowedWordPress

WordPress: Sorry, you are not allowed to access this page.

Your user role lacks the capability for that admin screen — or the database table prefix / user capabilities are out of sync afte…

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.

Two steps away (36)

publickeyGit

Git: Permission denied (publickey). fatal: Could not read from remote repository.

SSH authentication to GitHub/GitLab/Bitbucket failed — no key, wrong key, or the key isn’t added to your account.

AccessDeniedAWS

AWS S3: AccessDenied (403) when calling GetObject / PutObject

An IAM policy, bucket policy, ACL/ownership setting, Block Public Access or KMS key policy denied the S3 request.

EACCESLinux

Linux: Permission denied

Your user (or the service user) lacks read/write/execute permission on a file, directory or one of its parents.

daemonDocker

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

The docker CLI can’t talk to the Docker engine — it isn’t running, or your user can’t access the socket.

ExpiredTokenAWS

AWS: ExpiredToken — The security token included in the request is expired

Temporary AWS credentials (STS/SSO/assumed role) have expired.

401HTTP

HTTP 401 Unauthorized

The request has no valid authentication credentials — you need to log in or send a valid token.

dpkg lockLinux

E: Could not get lock /var/lib/dpkg/lock-frontend — is another process using it?

apt can’t run because another package operation (often automatic updates) holds the dpkg lock.

AccessDeniedExceptionJava

java.nio.file.AccessDeniedException: /path

The OS denied a file operation to the Java process.

clipboard write blockedJavaScript

NotAllowedError: Failed to execute 'writeText' on 'Clipboard': Document is not focused.

The Clipboard API refused to write — the page isn’t focused, there was no user gesture, or the context isn’t secure.

EADDRINUSENode.js

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

Another process is already listening on that port.

port is already allocatedDocker

Docker: Bind for 0.0.0.0:80 failed: port is already allocated

Another container or host process already publishes that host port.

invalid_scopeAuthentication

OAuth 2.0 Error: invalid_scope / insufficient_scope

The requested scope is unknown or not allowed for this client — or the token lacks the scope the API endpoint requires.

webhook signatureAPI

Webhook signature verification failed (Stripe, Razorpay, GitHub…)

Your endpoint computed a different HMAC signature than the one the provider sent, so the webhook is rejected.

permission denied (volume)Docker

Permission denied writing to a mounted volume inside a Docker container

The process inside the container runs as a user (UID) that doesn’t own the bind-mounted host folder, so reads/writes fail with EA…

REMOTE HOST IDENTIFICATION HAS CHANGEDLinux

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! (ssh host key changed)

The server’s SSH host key differs from the one saved in ~/.ssh/known_hosts — usually because the server was rebuilt or the IP was…

EACCESnpm

npm ERR! code EACCES — permission denied

npm can’t write to a directory — usually global installs into a root-owned folder.

EISDIRNode.js

Error: EISDIR: illegal operation on a directory, read

A file API (readFile, writeFile, createReadStream) was given a directory path.

ENOTDIRNode.js

Error: ENOTDIR: not a directory

A path treats a file as if it were a directory (e.g. file.txt/child).

ENOENTNode.js

Error: ENOENT: no such file or directory

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

EPIPENode.js

Error: write EPIPE

Node wrote to a pipe or socket whose other end was already closed.

maxBuffer exceededNode.js

RangeError [ERR_CHILD_PROCESS_STDIO_MAXBUFFER]: stdout maxBuffer length exceeded

child_process.exec/execSync produced more output than its buffer allows (default 1 MB).

failed to open streamPHP

Warning: include(x.php): Failed to open stream: No such file or directory

PHP couldn’t open a file for include/require/fopen — wrong path, missing file, or no permission.

No application encryption keyPHP

Laravel: No application encryption key has been specified.

Laravel’s APP_KEY is missing, so it can’t encrypt sessions and cookies.

419 Page ExpiredPHP

Laravel: 419 Page Expired (CSRF token mismatch)

Laravel rejected a POST because the CSRF token was missing, expired or didn’t match the session.

Port 8080 in useJava

Web server failed to start. Port 8080 was already in use.

Spring Boot couldn’t bind its embedded server port because another process uses it.

iptables: No chain/target/matchDocker

driver failed programming external connectivity on endpoint: iptables: No chain/target/match by that name

Docker’s iptables rules were wiped (firewalld/ufw reload, iptables flush) while Docker was running, so it can’t publish ports.

444HTTP

Nginx 444 No Response (connection closed without response)

An Nginx-specific code: the server deliberately closed the connection without sending anything — a rule is dropping the request.

ssh port 22 Connection refusedLinux

ssh: connect to host x port 22: Connection refused

The server answered, but nothing is listening on the SSH port — sshd isn’t running, it uses another port, or a firewall actively…

Too many authentication failuresLinux

Received disconnect: Too many authentication failures

Your SSH agent offered too many keys before the right one, and the server cut the connection (MaxAuthTries, default 6).

client_loop: send disconnect: Broken pipeLinux

client_loop: send disconnect: Broken pipe (SSH session drops when idle)

The SSH connection was cut — usually an idle timeout on a NAT router, firewall or the server, sometimes a network change.

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.

Critical errorWordPress

WordPress: There Has Been a Critical Error on This Website

A PHP fatal error (usually from a plugin or theme) stopped WordPress; the real error is in the debug log or recovery-mode email.

file_type_not_allowedAPI

Upload error: File type not allowed / unsupported file type

The upload was rejected because the file’s type — extension, MIME type or actual content — isn’t on the allowed list.

Job for x.service failedLinux

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: [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 `;`.

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.