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
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 403 Forbidden
The server understood the request but refuses to authorize it — you (or the server process) are not allowed to access this resour…
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.
user is not in the sudoers file. This incident will be reported.
Your account isn’t allowed to use sudo.
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.
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…
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.
Error: spawn EACCES
Node tried to execute a file that isn’t executable (missing +x permission) or isn’t a program.
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.
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…
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).
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: 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)
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.
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.
Linux: Permission denied
Your user (or the service user) lacks read/write/execute permission on a file, directory or one of its parents.
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.
AWS: ExpiredToken — The security token included in the request is expired
Temporary AWS credentials (STS/SSO/assumed role) have expired.
HTTP 401 Unauthorized
The request has no valid authentication credentials — you need to log in or send a valid token.
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.
java.nio.file.AccessDeniedException: /path
The OS denied a file operation to the Java process.
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.
Error: listen EADDRINUSE: address already in use :::3000
Another process is already listening on that port.
Docker: Bind for 0.0.0.0:80 failed: port is already allocated
Another container or host process already publishes that host port.
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 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 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…
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…
npm ERR! code EACCES — permission denied
npm can’t write to a directory — usually global installs into a root-owned folder.
Error: EISDIR: illegal operation on a directory, read
A file API (readFile, writeFile, createReadStream) was given a directory path.
Error: ENOTDIR: not a directory
A path treats a file as if it were a directory (e.g. file.txt/child).
Error: ENOENT: no such file or directory
A file or directory the program tried to open doesn’t exist at that path.
Error: write EPIPE
Node wrote to a pipe or socket whose other end was already closed.
RangeError [ERR_CHILD_PROCESS_STDIO_MAXBUFFER]: stdout maxBuffer length exceeded
child_process.exec/execSync produced more output than its buffer allows (default 1 MB).
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.
Laravel: No application encryption key has been specified.
Laravel’s APP_KEY is missing, so it can’t encrypt sessions and cookies.
Laravel: 419 Page Expired (CSRF token mismatch)
Laravel rejected a POST because the CSRF token was missing, expired or didn’t match the session.
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.
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.
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: 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…
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 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.
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.
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.
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 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 `;`.
Apache: AH00112: Warning: DocumentRoot [/var/www/example.com/public_html] does not exist
A virtual host points to a directory that doesn't exist.
Map another error
Popular: 500403400ORA-009331064Critical errorFileNotFoundException assemblyTypeError