Error map
404 except homepage WordPress: 404 Not Found on every page except the homepage (permalinks / .htaccess / Nginx rules)
WordPress · layer 4, Application & API
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…
HTTP 404 Not Found
The server can’t find anything at the requested URL.
FastCGI sent in stderr: "Primary script unknown"
Nginx passed a script path to PHP-FPM that PHP-FPM couldn’t find — usually a wrong SCRIPT_FILENAME or root.
WordPress: 403 Forbidden on wp-admin, wp-login.php or admin-ajax.php
The server or a security layer refused access to WordPress admin URLs — file permissions, a security plugin/WAF rule, ModSecurity…
Contact Form 7: There was an error trying to send your message. Please try again later.
The form submitted, but wp_mail() failed to send — the server can’t send mail or the mail settings are wrong.
WordPress: This block contains unexpected or invalid content. Attempt Block Recovery
The saved HTML of a block doesn’t match what the block’s current save function produces — after a plugin update, manual HTML edit…
Nginx 400: The SSL certificate error (495 / 496 client certificate)
Nginx rejected the request because the client certificate was invalid (495) or missing (496) on a site that requires mutual TLS.
WooCommerce: There was an error processing your order. Please check for any charges in your payment method / Error processing checkout. Please try again.
Checkout failed server-side — payment gateway error, nonce/session issue from caching, or a PHP error from a plugin hook.
WordPress / PHPMailer: SMTP Error: Could not authenticate / SMTP connect() failed
The SMTP server rejected the login or couldn’t be reached — wrong credentials, app passwords required, wrong port/encryption, or…
400 Bad Request: The plain HTTP request was sent to HTTPS port (Nginx 497)
Plain http:// traffic arrived on a port Nginx expects to be TLS (443 or a custom SSL port).
WordPress: One or more database tables are unavailable. The database may need to be repaired.
WordPress can’t read one or more of its tables — they’re crashed (MyISAM), missing, or the table prefix in wp-config.php is wrong.
WordPress: Another update is currently in progress.
WordPress thinks an update is running because the core_updater.lock option exists — usually left behind by a failed/interrupted u…
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.
HTTP 405 Method Not Allowed
The URL exists, but it doesn’t accept the HTTP method you used (e.g. POST to a GET-only route).
HTTP 410 Gone
The resource used to exist but was intentionally and permanently removed, with no forwarding address.
SyntaxError: Unexpected token < in JSON at position 0
`JSON.parse()` / `response.json()` received something that isn’t JSON — very often an HTML error page.
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.
PHP Fatal error: Allowed memory size of X bytes exhausted
The script tried to use more memory than PHP’s `memory_limit` allows.
Fatal error: Uncaught ArgumentCountError: Too few arguments to function foo(), 1 passed and exactly 2 expected
A function was called with fewer arguments than it 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.
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…
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…
Warning: A component is changing an uncontrolled input to be controlled
An input’s `value` started as `undefined` (uncontrolled) and later became a defined value (controlled), or vice versa.
PHP mail() returns false / emails not delivered
PHP’s mail() function failed or emails never arrive (spam or rejected).
SES MessageRejected: Email address is not verified. The following identities failed the check in region
SES refused to send because the From address/domain isn’t verified — or the account is still in the SES sandbox, where recipients…
WordPress: Updating failed. The response is not a valid JSON response.
The block editor saved via the REST API but got HTML or an error page back — broken permalinks, a security plugin/WAF, or PHP out…
WordPress: Are you sure you want to do this? Please try again. (nonce check failed)
A WordPress security nonce didn’t validate — the page was open too long, cached, or a plugin/theme form is broken.
WordPress block editor: The editor has encountered an unexpected error (Attempt Recovery / Copy Error)
A JavaScript error broke the block editor — usually a plugin/theme block script conflict, cached old scripts, or a browser extens…
HTTP 400 Bad Request
The server could not understand the request because its syntax, headers or body are malformed or invalid.
SSL: CERTIFICATE_VERIFY_FAILED / unable to get local issuer certificate
The client couldn’t verify the server’s TLS certificate chain, so it refused the HTTPS connection.
SSL error: tlsv1 alert protocol version / unsupported protocol / no protocols available
The client and server couldn’t agree on a TLS version or cipher, so the HTTPS handshake failed before any HTTP was exchanged.
Webhook delivery failed (endpoint returned non-2xx / timed out)
The provider tried to send a webhook to your endpoint but didn’t get a timely 2xx response, so it marks the delivery failed and r…
API Error: a similar object exists in test mode, but a live mode key was used
You’re using an ID, key or URL from one environment (test/sandbox) with credentials from another (live/production), or vice versa.
WooCommerce: Sorry, your session has expired. Return to shop
WooCommerce lost the customer’s cart session — usually because checkout/cart pages are cached or cookies are blocked/stripped.
550 5.1.1 The email account that you tried to reach does not exist (User unknown)
The recipient mailbox doesn’t exist on the receiving server — a typo in the address, a deleted account, or a wrong domain.
550 5.7.1 Relaying denied / Message rejected as spam / Unauthenticated email not accepted
The receiving (or your outgoing) mail server refused the message — relaying isn’t allowed, the sender isn’t authenticated, or it…
550 5.7.26 This mail has been blocked because the sender is unauthenticated (SPF/DKIM/DMARC)
Gmail/Outlook rejected the message because SPF and DKIM didn’t pass for the sender’s domain (DMARC failure).
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.
Mixed Content: The page was loaded over HTTPS, but requested an insecure resource
An HTTPS page tried to load a script, API or image over plain HTTP, and the browser blocked (or warned about) it.
CLEARTEXT communication to host not permitted by network security policy
Android 9+ blocks plain `http://` requests by default; the app tried to call a non-HTTPS URL.
MySQL ERROR 1146 (42S02): Table 'db.table' doesn't exist
The query references a table that MySQL can’t find in that database.
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.
Windows Resource Protection found corrupt files but was unable to fix some of them
SFC detected damaged system files but couldn’t restore them because its own source (the component store) is damaged too.
WordPress: Briefly unavailable for scheduled maintenance. Check back in a minute.
An update was interrupted and WordPress left its `.maintenance` file behind, so the site stays in maintenance mode.
WordPress login: Error: Cookies are blocked or not supported by your browser. You must enable cookies to use WordPress.
WordPress’s test cookie wasn’t returned on login — often a siteurl/home or domain mismatch, caching of wp-login.php, or headers a…
WordPress: Missed schedule — scheduled posts not publishing (WP-Cron not running)
WP-Cron didn’t fire at the scheduled time, so scheduled posts and tasks (backups, emails, WooCommerce jobs) are late.
Map another error
Popular: 500403400ORA-009331064Critical errorFileNotFoundException assemblyTypeError