Error reference Diagnose & fix
Proxy & scraping errors, decoded and fixed
Every error on this list links to a plain-English diagnosis: what the code actually means, the most common causes in scraping and proxy setups, ordered fix steps, and working code that avoids it. Bookmark it — the next 3 a.m. debugging session will go faster.
Error codes
HTTP status
400 Bad Request 400 Bad Request means the server couldn't parse your request. Fix malformed URLs, oversized cookies, header errors, and proxy protocol mismatches step by step. Diagnose 401 Unauthorized 401 Unauthorized means the target rejected your credentials, not your proxy. Fix expired tokens, dropped auth headers, and IP-bound sessions behind rotating proxies. Diagnose 403 Forbidden 403 Forbidden means the server refuses to serve you — often IP reputation, geo blocks, or bot filtering. Step-by-step fixes plus how residential proxies solve it. Diagnose 405 Method Not Allowed 405 Method Not Allowed means the endpoint rejects your HTTP verb. Find the allowed methods, fix redirect downgrades, and rule out your proxy the right way. Diagnose 407 Proxy Authentication Required HTTP 407 means the proxy rejected your credentials, not the target site. Step-by-step fixes for username, password, URL encoding, and IP whitelist auth. Diagnose 408 Request Timeout HTTP 408 means the server gave up waiting for your request to arrive. Causes, fixes, retry strategy, and how proxy latency and slow exits factor in. Diagnose 421 Misdirected Request HTTP 421 means the server can't serve that hostname on this connection — usually HTTP/2 connection reuse or an SNI/Host mismatch. Here's how to fix it. Diagnose 429 Too Many Requests HTTP 429 means you hit a rate limit. Learn how to read Retry-After, add backoff, tune concurrency, and spread traffic across rotating residential IPs. Diagnose 444 No Response HTTP 444 means the server closed your connection without replying — a silent nginx-level drop. Learn why requests get filtered and how to stop triggering it. Diagnose 499 Client Closed Request HTTP 499 means the client disconnected before the server answered. Learn what causes it in nginx logs and how to fix timeout mismatches and slow backends. Diagnose 500 Internal Server Error HTTP 500 means the server failed while handling your request. Learn what triggers it, when your request is the cause, and how to handle 500s when scraping. Diagnose 502 Error HTTP 502 means an intermediary server got no valid response from the server behind it. Learn how to tell which hop failed and fix 502s when scraping via proxies. Diagnose 503 Service Unavailable 503 means the server can't take requests right now — overload, maintenance, or rate limiting. Learn to diagnose the real cause and fix it with backoff and IP rotation. Diagnose 504 Timeout Error A 504 means an intermediary waited on the origin server and got no answer in time. See which hop timed out and fix it with retries, lower concurrency, and closer exits. Diagnose 520 Web Server Returned an Unknown Error Error 520 means Cloudflare got an empty or invalid response from the origin. Common causes, scraper-side triggers like oversized cookies, and a retry pattern that works. Diagnose 521 Web Server Is Down Error 521 means Cloudflare couldn't open a TCP connection to the site's origin server — it's down or blocking. Who can fix it, and how a crawler should respond. Diagnose 522 Connection Timed Out Error 522 means Cloudflare couldn't open a TCP connection to the site's origin server. Learn what causes it, what you can actually fix, and how to retry it correctly. Diagnose 524 A Timeout Occurred Error 524 means the origin server answered too slowly behind Cloudflare. See what causes it, how to request less work per call, and how to set timeouts and retries. Diagnose 525 SSL Handshake Failed Error 525 means TLS failed between Cloudflare and the site's origin — not on your side. Confirm the diagnosis, rule out local TLS lookalikes, and retry sensibly. Diagnose 526 Invalid SSL Certificate Error 526 means the origin's SSL certificate failed Cloudflare's validation. Learn why verify=False can't fix it, how to spot local lookalikes, and when to retry. Diagnose
Error codes
Browser & network
ERR_PROXY_CONNECTION_FAILED ERR_PROXY_CONNECTION_FAILED means your browser can't reach the configured proxy server at all. Fix stale settings, wrong ports, DNS, and firewall blocks step by step. Diagnose ERR_TUNNEL_CONNECTION_FAILED ERR_TUNNEL_CONNECTION_FAILED means the proxy refused the HTTPS CONNECT tunnel. Diagnose auth, blocked ports, and exit failures — and fix each one step by step. Diagnose ERR_CONNECTION_REFUSED ERR_CONNECTION_REFUSED means the host actively rejected your TCP connection — nothing listens on that port. Isolate the refusing hop and fix ports, DNS, and firewalls. Diagnose ERR_CONNECTION_RESET ERR_CONNECTION_RESET means the connection opened, then was forcibly closed mid-transfer. Trace resets to filters, MTU, rate limits, or proxy auth — and fix each cause. Diagnose ERR_CONNECTION_TIMED_OUT ERR_CONNECTION_TIMED_OUT means the connection attempt got no reply at all. Learn the real causes — dead hosts, firewalls, bad proxy config — and fix it step by step. Diagnose ERR_EMPTY_RESPONSE ERR_EMPTY_RESPONSE means the server closed the connection without sending any data. Learn why sites silently drop flagged IPs and how to fix it. Diagnose ERR_SSL_PROTOCOL_ERROR ERR_SSL_PROTOCOL_ERROR means the TLS handshake failed. See the common causes and the proxy scheme mistake that triggers it, plus fixes for browsers and scripts. Diagnose ERR_CERT_AUTHORITY_INVALID ERR_CERT_AUTHORITY_INVALID means the certificate issuer isn't trusted. Find what is intercepting your TLS and fix the trust chain without disabling verification. Diagnose ERR_TOO_MANY_REDIRECTS ERR_TOO_MANY_REDIRECTS means a redirect loop. Trace the loop, clear stale cookies, and stop mid-chain proxy rotation from bouncing requests between locales. Diagnose ERR_NAME_NOT_RESOLVED ERR_NAME_NOT_RESOLVED means DNS lookup failed. Fix local DNS, flush caches, and learn who resolves hostnames when a proxy is in the path — you or the proxy. Diagnose SOCKS5 Connection Refused SOCKS5 connection refused has two distinct causes: the proxy port refused your TCP connection, or the target refused the proxy. How to tell them apart and fix both. Diagnose
Error codes
cURL
cURL Error 5: Couldn't Resolve Proxy cURL error 5 (CURLE_COULDNT_RESOLVE_PROXY) means the proxy hostname failed DNS. Check stale proxy env vars, URL format, and credential encoding to fix it fast. Diagnose cURL Error 7: Failed to Connect cURL error 7 (CURLE_COULDNT_CONNECT) means the TCP connection was refused or blocked. Check the port, firewalls, and proxy IP whitelist to fix it step by step. Diagnose cURL Error 28: Operation Timed Out curl error 28 means the request hit a time limit before finishing. Learn how to tell which phase stalled, set the right timeouts, and tune limits for proxied traffic. Diagnose cURL Error 35: SSL Connect Error curl error 35 means the TLS handshake failed before completing. Common causes: HTTPS to a plaintext port, protocol mismatch, wrong proxy scheme — and the fixes. Diagnose cURL Error 56: Recv Failure curl error 56 (recv failure) means an established connection was reset mid-transfer. Learn who sent the reset — target, firewall, or proxy — and how to stop it. Diagnose
Error codes
Libraries
requests.exceptions.ProxyError requests.exceptions.ProxyError means the proxy leg failed. Decode the wrapped message — 407, refused, DNS — and fix your proxies dict, credentials, and env vars. Diagnose Python SSL: CERTIFICATE_VERIFY_FAILED Fix ssl.SSLCertVerificationError: CERTIFICATE_VERIFY_FAILED in Python: CA bundles, certifi, corporate TLS interception, and correct proxy configuration. Diagnose Node.js ECONNREFUSED connect ECONNREFUSED means the TCP connection was actively rejected. Fix wrong ports, IPv6 localhost issues, Docker networking, and Node proxy agent setup. Diagnose Node.js ECONNRESET read ECONNRESET means the other side abruptly closed the socket. Fix keep-alive races, unhandled error events, proxy rotation cut-offs, and target-side resets. Diagnose
Most of these errors trace back to the route. Fix the route.
Clean residential and ISP IPs with country targeting, sticky sessions and one credential pattern across every tool.