Error map

497 400 Bad Request: The plain HTTP request was sent to HTTPS port (Nginx 497)

HTTP · layer 2, Network

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.

497 — 400 Bad Request: The plain HTTP request was sent to HTTPS port (Nginx 497) (HTTP)497403 — HTTP 403 Forbidden (HTTP)403400 — HTTP 400 Bad Request (HTTP)400Primary script unknown — FastCGI sent in stderr: "Primary script unknown" (PHP)Primary script unkn…525 — Cloudflare Error 525: SSL Handshake Failed (Cloudflare)525403 Forbidden wp-admin — WordPress: 403 Forbidden on wp-admin, wp-login.php or admin-ajax.php (WordPress)403 Forbidden wp-ad…421 — HTTP 421 Misdirected Request (HTTP)421502 — HTTP 502 Bad Gateway (HTTP)502495 — Nginx 400: The SSL certificate error (495 / 496 client certificate) (HTTP)495upstream timed out — Nginx: upstream timed out (110: Connection timed out) while reading response header from upstream (Nginx / Apache)upstream timed outMixed Content — Mixed Content: The page was loaded over HTTPS, but requested an insecure resource (API)Mixed Content307 — HTTP 307 Temporary Redirect (HTTP)307404 except homepage — WordPress: 404 Not Found on every page except the homepage (permalinks / .htaccess / Nginx rules) (WordPress)404 except homepagepublickey — 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)EACCES401 — HTTP 401 Unauthorized (HTTP)401405 — HTTP 405 Method Not Allowed (HTTP)405413 — HTTP 413 Content Too Large (Request Entity Too Large) (HTTP)413404 — HTTP 404 Not Found (HTTP)404Allowed memory size exhausted — PHP Fatal error: Allowed memory size of X bytes exhausted (PHP)Allowed memory size…ArgumentCountError — Fatal error: Uncaught ArgumentCountError: Too few arguments to function foo(), 1 passed and exactly 2 expected (PHP)ArgumentCountError520 — Cloudflare Error 520: Web Server Returned an Unknown Error (Cloudflare)520521 — Cloudflare Error 521: Web Server Is Down (Cloudflare)521526 — Cloudflare Error 526: Invalid SSL Certificate (Cloudflare)526webhook signature — Webhook signature verification failed (Stripe, Razorpay, GitHub…) (API)webhook signatureNot allowed — WordPress: Sorry, you are not allowed to access this page. (WordPress)Not allowed1020 — Cloudflare Error 1020: Access Denied (Cloudflare)1020CERTIFICATE_VERIFY_FAILED — SSL: CERTIFICATE_VERIFY_FAILED / unable to get local issuer certificate (API)CERTIFICATE_VERIFY_…CLEARTEXT — CLEARTEXT communication to host not permitted by network security policy (Android)CLEARTEXTATS — App Transport Security has blocked a cleartext HTTP resource load (iOS)ATSECONNREFUSED — Error: connect ECONNREFUSED 127.0.0.1:5432 (Node.js)ECONNREFUSED407 — HTTP 407 Proxy Authentication Required (HTTP)407500 — HTTP 500 Internal Server Error (HTTP)500tlsv1 alert protocol version — SSL error: tlsv1 alert protocol version / unsupported protocol / no protocols available (API)tlsv1 alert protoco…444 — Nginx 444 No Response (connection closed without response) (HTTP)444bind() 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: …2006 — MySQL ERROR 2006 (HY000): MySQL server has gone away (MySQL)2006408 — HTTP 408 Request Timeout (HTTP)408504 — HTTP 504 Gateway Timeout (HTTP)504Failed to fetch — TypeError: Failed to fetch / NetworkError when attempting to fetch resource (JavaScript)Failed to fetchCORS — CORS Error: No 'Access-Control-Allow-Origin' header is present (API)CORSAuthentication failed — fatal: Authentication failed for 'https://github.com/x/y.git/' (Git)Authentication fail…301 — HTTP 301 Moved Permanently (HTTP)301302 — HTTP 302 Found (Temporary Redirect) (HTTP)302303 — HTTP 303 See Other (HTTP)303Cookies are blocked — WordPress login: Error: Cookies are blocked or not supported by your browser. You must enable cookies to use WordPress. (WordPress)Cookies are blockedMissed schedule — WordPress: Missed schedule — scheduled posts not publishing (WP-Cron not running) (WordPress)Missed scheduleOne or more database tables are unavailable — WordPress: One or more database tables are unavailable. The database may need to be repaired. (WordPress)One or more databas…

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…

400HTTP

HTTP 400 Bad Request

The server could not understand the request because its syntax, headers or body are malformed or invalid.

Primary script unknownPHP

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.

525Cloudflare

Cloudflare Error 525: SSL Handshake Failed

Cloudflare couldn’t complete a TLS handshake with your origin (SSL mode Full / Full strict).

403 Forbidden wp-adminWordPress

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…

421HTTP

HTTP 421 Misdirected Request

The request reached a server that isn’t configured for that host name — usually HTTP/2 connection reuse across domains sharing a…

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.

495HTTP

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.

upstream timed outNginx / Apache

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.

Mixed ContentAPI

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.

307HTTP

HTTP 307 Temporary Redirect

A temporary redirect that keeps the original method and body — a POST stays a POST at the new URL.

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.

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.

401HTTP

HTTP 401 Unauthorized

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

405HTTP

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

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.

404HTTP

HTTP 404 Not Found

The server can’t find anything at the requested URL.

Allowed memory size exhaustedPHP

PHP Fatal error: Allowed memory size of X bytes exhausted

The script tried to use more memory than PHP’s `memory_limit` allows.

ArgumentCountErrorPHP

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.

520Cloudflare

Cloudflare Error 520: Web Server Returned an Unknown Error

Cloudflare connected to your origin, but the origin returned an empty, unknown or invalid response.

521Cloudflare

Cloudflare Error 521: Web Server Is Down

Cloudflare couldn’t connect to your origin — the connection was refused.

526Cloudflare

Cloudflare Error 526: Invalid SSL Certificate

With SSL mode Full (strict), the origin’s certificate is expired, self-signed, or doesn’t match the hostname.

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.

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…

1020Cloudflare

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…

CERTIFICATE_VERIFY_FAILEDAPI

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.

CLEARTEXTAndroid

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.

ATSiOS

App Transport Security has blocked a cleartext HTTP resource load

iOS blocked an `http://` request (or a weak-TLS HTTPS one) because App Transport Security requires secure connections.

ECONNREFUSEDNode.js

Error: connect ECONNREFUSED 127.0.0.1:5432

Nothing is listening at that host:port — the target service is down or you’re connecting to the wrong address.

407HTTP

HTTP 407 Proxy Authentication Required

A proxy between you and the server requires credentials before it will forward your request.

500HTTP

HTTP 500 Internal Server Error

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

tlsv1 alert protocol versionAPI

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.

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.

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…

2006MySQL

MySQL ERROR 2006 (HY000): MySQL server has gone away

The connection to MySQL was closed — usually by a timeout or a packet larger than `max_allowed_packet`.

408HTTP

HTTP 408 Request Timeout

The server closed the connection because the client took too long to send the complete request.

504HTTP

HTTP 504 Gateway Timeout

A proxy or gateway waited too long for the upstream server to respond and gave up.

Failed to fetchJavaScript

TypeError: Failed to fetch / NetworkError when attempting to fetch resource

The browser couldn’t complete the request at the network level — CORS, DNS, offline, blocked mixed content, or the server refused…

CORSAPI

CORS Error: No 'Access-Control-Allow-Origin' header is present

The browser blocked a cross-origin request because the server’s response didn’t include the CORS headers allowing your site’s ori…

Authentication failedGit

fatal: Authentication failed for 'https://github.com/x/y.git/'

HTTPS authentication to the Git host failed — wrong or expired credentials, or a password used where a token is required.

301HTTP

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.

302HTTP

HTTP 302 Found (Temporary Redirect)

The resource is temporarily at another URL; clients should keep using the original URL for future requests.

303HTTP

HTTP 303 See Other

A redirect telling the client to fetch the result from another URL with GET — used after a form POST so refreshing doesn’t resubm…

Cookies are blockedWordPress

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…

Missed scheduleWordPress

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.

One or more database tables are unavailableWordPress

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.