← All articles

Reference

Proxy Error Codes, and What They Actually Mean

Alex R. · August 24, 2026 · 9 min read


The short version: proxy errors split cleanly into two groups, and knowing which group you are in saves most of the debugging. Anything in the 4xx range that comes from the proxy means your request never left our network. Anything that comes from the target means it did leave, and the site made a decision about it. Fix the first kind in your config; fix the second kind by changing which IPs you are using.

The ones that come from the proxy

These never reach the site you were trying to load.

CodeWhat it meansUsual cause
407Credentials refusedAuth disabled in your client, wrong field order, or an empty balance
502Gateway could not reach upstreamBad target hostname, or the exit node dropped mid-request
503No exit available for your filterTargeting so narrow nothing matches - a city with a thin pool, plus an ISP filter on top
429Rate limitedToo many concurrent sessions from one sub-user

407 is far and away the most common, and it is worth being precise about because the fix depends entirely on which of the three causes you have. If your dashboard shows bandwidth remaining and you still get 407 on every request, that is not a configuration problem and no amount of re-entering the password will help - test the credentials, then talk to support.

The ones that come from the target

Different animal entirely. The proxy did its job.

CodeWhat the site decidedWhat to change
403This IP is not welcomeIP type - move from datacenter to residential
429Too fast from this IPRotation frequency, or add delay
503 / 522Challenge page, often CloudflareFingerprint and headers, not the IP
ECONNRESETConnection killed mid-flightUsually TLS fingerprint. Your client looks automated

The distinction that trips people up: a 403 and a Cloudflare challenge look similar in logs but have opposite fixes. A 403 is a verdict on your IP. A challenge is a verdict on your client - same IP, different browser, different result. Rotating IPs against a fingerprint problem burns bandwidth and changes nothing.

How to tell which group you are in

Two commands settle it.

# does the proxy work at all?
curl -x http://USER:PASS@resi.spyderproxy.com:5000 https://ipinfo.io/ip

# does it work against your actual target?
curl -x http://USER:PASS@resi.spyderproxy.com:5000 https://your-target.example

If the first fails, stop - it is credentials or balance, and nothing about the target matters yet. If the first returns an IP and the second fails, the proxy is fine and you are looking at a targeting or fingerprint problem.

That order matters more than it sounds. Most of the debugging time we see people lose goes on investigating the target when the first command would have failed too.

The errors people misread most often

407 with a visible balance. Intuitively this should be impossible. In practice a sub-user can end up in a state where the account shows bandwidth but the gateway rejects it. If you have confirmed the credentials are right and you still get 407, escalate rather than reconfiguring.

Intermittent 502s. A handful across thousands of requests is normal - residential exits are real devices on real connections, and some of them go offline mid-request. Retry once. If it is more than roughly one in fifty, something else is wrong.

Everything works in curl but fails in the browser. Almost always the browser is doing something curl is not: DNS outside the tunnel, WebRTC, or a stored session. Our DNS leak test and WebRTC test will show you in a few seconds.

Works on the first request, dies after that. You are on rotating when you wanted sticky. Any flow with a login or a cart needs the same IP for its duration.

A note on retries

Retry logic hides problems. If you retry three times on failure and your success rate looks acceptable, you may still be failing two thirds of your first attempts and paying for all of it. Log the first-attempt rate separately from the eventual one. The gap between those two numbers is the real measure of whether your setup works, and it is the number that shows up on your bill.

If that gap is large, the fix is usually IP type rather than more retries. Protected targets that reject datacenter IPs will often accept residential ones on the first try.

Frequently asked questions

What does proxy error 407 mean?

407 is the proxy refusing your credentials. Nine times out of ten it is one of three things: authentication is switched off in your client, the username and password went into the wrong fields, or your bandwidth balance is empty. It is never a problem with the target site - your request never got that far.

Why do I get 403 through a proxy but not without one?

The proxy worked. The target site looked at the IP it received and decided it did not like it. That points at pool quality or IP type rather than configuration - datacenter ranges get 403s on protected targets that residential IPs walk straight through.

Is ECONNRESET a proxy problem or a target problem?

Usually the target. A reset arrives after the connection is established, which means your request reached the site and something there ended it - rate limiting, a fingerprint check, or an outright block. If it happens on every site including plain HTTP ones, then suspect the proxy.

Does a proxy error mean I lost bandwidth?

Only if data moved. A 407 costs you nothing because authentication failed before any traffic passed. A 403 does consume a little - the request went out and a response came back. Large numbers of 403s are worth fixing for that reason alone.

Need proxies that actually get through?

See residential ↗Start now ↗