Advertisement
Digital Intelligence Hub
Advertisement

Proxy Error Meaning: The Three Layers, and Who Can Actually Fix Each One

Expert Analyst Christopher Vance
Publish Date Sep 24, 2026
Advertisement
Proxy Error Meaning: Who Can Actually Fix It

The proxy error meaning you are looking for depends on which of three different things you are actually looking at, and almost every guide on this subject blurs them together. A message from your browser, a status code from a server, and the question of which server sent it are not the same problem.

That third one decides everything. A 502 produced by your proxy and a 502 passed along from the website look identical on your screen. One you can fix in a minute. The other is somebody else's server, and no amount of changing proxies will touch it.

So this is a diagnostic rather than a dictionary. What the three layers are, how to tell in about two minutes who actually generated the error, what the codes that matter really mean with a source attached, and which of them are genuinely not yours to fix.

Advertisement
Christopher Vance, Web Infrastructure Specialist, explaining proxy error meaning and how to tell which server sent it, at TrustMyIP.com
Author: Christopher Vance Web Infrastructure Specialist
I spend my time on both ends of this: the proxy side and the server side. From the server side, most of what people call a proxy error is the origin having a bad day and the proxy faithfully reporting it. From the proxy side, the interesting failures happen before any HTTP status exists at all. The first question is never what a code means. It is who sent it.
And one thing worth saying plainly, because we sell no proxies and can afford to: several of these cannot be fixed by you, and switching provider will not change them. Knowing which errors are yours saves money as well as an afternoon.

Quick Answer: Proxy Error Meaning

A proxy error is one of three things: a network error your browser named itself, an HTTP status code from a server, or a status code your proxy merely passed along. Work out which before you change anything. Start by checking whether a proxy is in your path at all with our proxy detection tool.

Proxy Error Meaning: Three Different Things With One Name

The question people actually type is what is proxy error, or what does proxy error mean, or just proxy server error, and the answer that comes back is a list of HTTP status codes. That answer is incomplete in a way that wastes people's time, because a large share of proxy failures never reach the point where a status code exists.

If your browser cannot reach the proxy at all, nothing has replied and there is no 502, no 407, no status of any kind. What you get is your browser's own error, generated locally. And there is a second case, which almost nobody writes about: a server did reply, with a number, and your browser decided not to show it to you. Both land on the same screen. Section 3 is where they separate, and that is a different category from anything the ranked guides cover.

Layer What it is Where you see it
Browser network error Your browser named the failure itself. Sometimes nothing answered. Sometimes a status arrived and Chrome refused to show it to you An ERR_ name on Chrome's error page
HTTP status code Something answered, with a number. 407, 502, 504 and friends The page body, or the network tab
Who generated it Your proxy produced this, or relayed it from the website A Proxy-Status header, on the rare response that carries one. Otherwise nowhere, and you work it out

The third row is the one with no indicator light, and it is the one that decides whether you have a five-minute job or no job at all. If the mechanics of what sits between you and a website are unfamiliar, our explanation of how a proxy server works and where it sits in a network covers the shape of it.

Advertisement

Before any of that, though, there is a question worth thirty seconds, because a surprising number of proxy errors turn out not to involve a proxy.

First: Is a Proxy Even in the Path?

People arrive at this question with a proxy configured somewhere and assume it is involved. Often it is not. The setting is on a screen nothing is reading, or it was cleared, or the failure is happening at a layer the proxy never touches.

There is a header for exactly this. MDN describes it in one line: "The Via request and response header is added by proxies, both forward and reverse", and it exists for "tracking message forwards", "avoiding request loops", and "identifying the protocol capabilities of senders along the request/response chain".

Advertisement

Read it in your browser's network tab: open developer tools, switch to the Network panel, reload the failing page, click the request, and look through the response headers for Via. If it is there, the message was forwarded by at least one intermediary. While you have that list open, look for a second header called Proxy-Status as well. It is rarer and it says far more, and Section 4 is where it earns its keep. One trip, two headers.

Two limits matter more than the test does. It needs a response to read, so if your browser never reached the proxy there are no headers to inspect at all. And a forward proxy handling HTTPS opens a tunnel and never touches the messages inside it, so it cannot add a header to them. On an HTTPS page, which is nearly all of them, a Via you can see almost certainly came from the destination's own CDN rather than from yours. Read it as evidence that an intermediary exists, never as an identification of which one.

Two checks, two different questions

What does the outside world see when I connect? Our proxy, VPN and Tor detection check answers that from the far end, which is the only vantage point that settles it.
Is the website broken for everyone, or only for me? Our HTTP headers analyzer fetches the URL from our side, so it shows you what that server returns to a request with nothing to do with your connection. Step 2 of the test in Section 4 is built on it.

That second test is the one nobody runs, and it resolves more of these than any setting change. Once you know a proxy is genuinely involved, the next question is which layer you are looking at.

The ERR_ Codes: What Chrome Is Actually Telling You

When you see err proxy connection failed on a Chrome error page, you are not looking at an HTTP status. You are looking at a Chromium network error, and Chromium publishes what every one of them means in its own source. This is the layer the guides on this topic leave out, and it is the layer most people are actually staring at.

These are read from Chromium's net_error_list.h, with the numeric values the browser uses internally.

Error Chromium's own description What it means for you
ERR_PROXY_CONNECTION_FAILED (-130) "Could not create a connection to the proxy server. An error occurred either in resolving its name, or in connecting a socket to it" The proxy address is wrong, unreachable, or the port is closed. Yours to fix
ERR_TUNNEL_CONNECTION_FAILED (-111) "A tunnel connection through the proxy could not be established" The proxy answered, then refused to open the HTTPS tunnel. Often a blocked destination
ERR_PROXY_UNABLE_TO_CONNECT_TO_DESTINATION (-186) "An attempt to proxy a request failed because the proxy wasn't able to successfully connect to the destination... the error is outside the control of the proxy server" The proxy is fine. The site it was asked to reach is not. Not yours, and not your provider's
ERR_PROXY_AUTH_REQUESTED (-127) "The proxy requested authentication (for tunnel establishment)" Credentials needed. See Section 6
ERR_PROXY_AUTH_UNSUPPORTED (-115) "The proxy requested authentication (for tunnel establishment) with an unsupported method" The proxy wants a scheme your browser will not speak. Ask the operator
ERR_PROXY_CERTIFICATE_INVALID (-136) "The certificate presented by the HTTPS Proxy was invalid" A TLS problem with the proxy itself, not the website
ERR_MANDATORY_PROXY_CONFIGURATION_FAILED (-131) "A mandatory proxy configuration could not be used... a mandatory PAC script could not be fetched, parsed or executed" A managed machine. The script your policy points at is missing or broken
ERR_PAC_SCRIPT_FAILED (-327) "The evaluation of the PAC script failed" The script was fetched but threw an error while running

Two of those repay a second look. ERR_PROXY_CONNECTION_FAILED covers two quite different faults in one message, name resolution and socket connection, which is why "unable to connect to proxy server" can mean a typo in the hostname or a firewall between you and a perfectly healthy machine. Chromium adds a limit that saves a lot of wasted searching: "Note that this does NOT include failures during the actual \"CONNECT\" method of an HTTP proxy." If the CONNECT is what failed, you are looking at a different code.

And ERR_TUNNEL_CONNECTION_FAILED is the one people misread most. The proxy was reachable. It answered. It then declined to open a tunnel to the destination you asked for, which on a corporate network usually means the destination is blocked rather than the proxy being broken.

And there is a reason that one tells you so little, which took reading Chromium's own connection code to find. When a proxy answers a tunnel request with any status other than 200 or 407, Chrome throws the response away on purpose. The comment beside that decision says it plainly: "Ignore response to avoid letting the proxy impersonate the target server", followed by the admission that "We have seen proxy 403, 404, and 501 response bodies that contain a useful error message."

So the proxy replied, it may well have explained itself, and your browser hid the explanation on purpose. Worth knowing before you spend an hour assuming nothing answered. Curl will show you what was said, because it has no user to protect from a hostile intermediary, and Section 5 has the exact string it prints.

Wording varies wildly and people search whichever string they were shown, but it sorts into two families with opposite diagnoses. One means nothing at the proxy answered: cannot connect to proxy, proxy server not responding, web proxy not responding, the configured proxy server is not responding, error proxy connection failed. One condition, five spellings.

The other says the reverse. The proxy failed to connect to the web server means the proxy answered you perfectly well and then could not reach the site, which is the far half of the journey. Checking your own settings will not move it.

Where Chrome gets its proxy from in the first place is its own question, and we took it apart in where Chrome's proxy settings really come from. None of these ERR_ names is an HTTP status code. So when you do have a number instead, the next question is not what it means but who put it there.

Who Generated This: Your Proxy, or the Website?

Here is the problem in one sentence. A 502 that your proxy produced because its own upstream failed, and a 502 that the website produced and your proxy politely handed you, arrive in exactly the same shape. Same number, same category, no label saying which. Nothing in the response is obliged to tell you.

The word "obliged" is doing real work there, because a standard way to tell you does exist and almost nobody uses it. RFC 9209, Standards Track since June 2022, defines the Proxy-Status response header for exactly this problem. Its abstract says it exists "to convey the details of an intermediary's response handling, including generated errors."

It is the right instrument because it names names. Each entry identifies the intermediary that added it, in a fixed order: "The first member represents the intermediary closest to the origin server, and the last member represents the intermediary closest to the user agent." Two examples printed in the RFC:

RFC 9209, section 2
Proxy-Status: ExampleCDN; error=connection_timeout

Proxy-Status: proxy.example.net; error="http_protocol_error";
      details="Malformed response header: space before colon"

# look for it in the same place you looked for Via

The error types are specific in a way a three-digit code cannot be. connection_refused is "The intermediary's connection to the next hop was refused". http_response_incomplete is "The intermediary received an incomplete response to the request from the next hop". Read either on a 502 and you know which hop failed and how, with no testing at all.

Two catches, and the RFC is candid about the first: "Intermediaries determine when it is appropriate to add the Proxy-Status field to a response." It is optional, and its own security section explains the reluctance, since the field means "information about the intermediary's configuration and backend topology can be exposed". Most proxies and most CDNs therefore send nothing at all.

The second catch is the same physics that limits Via. Your own forward proxy would have to put this on a response it generated, and on an HTTPS request the only response it generates is to the CONNECT, which Section 3 just showed you Chrome throws away. So a Proxy-Status you can actually read in the network tab has most likely come from the chain on the destination's side. That is still useful, and it is still not a statement about your proxy.

Check for it first anyway, because when it is there it costs you one glance. Then, for the overwhelming majority of the time when it is absent or not yours, do this instead.

You separate them by changing one variable at a time. Four steps, about two minutes, and it settles the question that the rest of this page depends on.

The isolation test

1 Try the same URL with the proxy off

If it loads, the proxy or its route is involved. If it fails the same way, the proxy was never the problem and you can stop reading about proxies.

2 Ask someone outside your connection

Fetch the URL with our headers analyzer. A clean 200 to us and a 502 to you puts the difference in your path. The same error to both of us puts it at the site.

3 Try a second proxy, if you have one

Same error through a different proxy points at the destination. A different result points at the first proxy. This is the single most informative step and the one people skip.

4 Look at the error page itself

Proxy software tends to sign its work. A 502 body naming Squid, nginx, Apache or a corporate gateway was written by an intermediary, because a relayed response carries the origin's own error page instead. A Via header is not that clue: it records forwarding, which is a different fact from authorship.

Do that before you change a setting, buy anything, or open a ticket. If it produced a number, Sections 5 and 6 tell you what the number is worth. If it produced nothing at all, skip to Section 7.

502, 504 and the Codes You Probably Cannot Fix

Proxy error 502 and its sibling 504 are the ones that fill the search results, and they are also the ones most often misdescribed. Both are defined around the idea of a server acting as an intermediary, which is precisely why they show up when a proxy is in the path.

So what is a 502 proxy error, exactly? MDN's definition of 502 Bad Gateway: it "indicates that a server was acting as a gateway or proxy and that it received an invalid response from the upstream server." Something answered, and what it said was broken. That is the whole 502 proxy error meaning, and notice what it does not say: nothing in it identifies which intermediary.

504 Gateway Timeout is the sibling, and the distinction matters more than most pages admit. MDN again: it "indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server in order to complete the request", and "This is similar to a 502 Bad Gateway, except that in a 504 status, the proxy or gateway did not receive any HTTP response from the origin within a certain time." A 502 means a bad answer arrived. A 504 means none did.

That is the specification's distinction, and it is worth holding lightly, because implementations do not keep to it. Apache returns a 502 when it cannot read a status line from the backend at all, which is the textbook description of a 504. So treat the pair as a hint about what happened upstream, never as proof. The isolation test tells you more than the choice of number does.

Code What it actually says Whose problem
502 Bad Gateway An intermediary got an invalid response from upstream Whoever runs the upstream. Run the isolation test to find out who that is
504 Gateway Timeout An intermediary got no response in time from upstream Same, and MDN says so for both. One documented exception, in the box below
503 Service Unavailable A server is not ready, usually overloaded or in maintenance Could be either. Origins send it under load; proxy pools send it when no upstream is available
500 Internal Server Error A server hit a condition it could not handle. Not a gateway code Whichever server produced it. Rarely the proxy
403 Forbidden The request was understood and refused Usually the site's decision about you, and changing proxies sometimes helps. A filtering proxy refusing the destination also returns 403
407 Proxy Authentication Required The proxy itself wants credentials Yours, and the only one on this list that is unambiguously the proxy

One entry there is worth arguing with, because the search volume insists on it. A 500 proxy error is barely a category. Unlike 502 and 504, the definition of 500 says nothing whatever about intermediaries. Proxies can still emit one; the number is simply silent on where the fault sits, which makes it the least diagnostic code on this page.

The part a page selling proxies cannot comfortably write

MDN on 504, verbatim: "There are many causes of 504 errors, and fixing such problems likely requires investigation and debugging by server administrators, or the site may work again at a later time."
The 502 page says it too, in almost the same words: fixing those "probably requires investigation by server owners or administrators." Both of the codes that fill this topic come with a documented note that they are somebody else's job. Rotating your IP does not make a stalled backend answer faster, and neither does a more expensive proxy pool.
MDN does name the exception, and it deserves the same honesty: "Exceptions are client networking errors, particularly if the service works for other visitors, and if clients use VPNs or other custom networking setups." Which is exactly what step two of the isolation test establishes. If the site answers everyone else and not you, it is yours after all.

Notice that the right-hand column almost never says "yours". That is the honest shape of this topic, and it is why the isolation test comes before the table rather than after it. The one row where changing something on your side genuinely helps is 403, because that is usually the site deciding it does not want this particular request, which we cover in why websites block your IP address.

Which is why the wording of an error page is worth more than the number on it, and none of the pages ranking for this topic goes near this. Plenty of people arrive here having pasted one into a search box as proxy error reading from remote server. That string is Apache's: in mod_proxy_http.c it calls ap_proxyerror(r, HTTP_BAD_GATEWAY, "Error reading from remote server"), and builds the page with the number followed by the words Proxy Error above the note "The proxy server could not handle the request". Apache runs in both modes, so that names the software rather than whose side it sits on, but if you did not configure an Apache proxy yourself, the likeliest reading is a reverse proxy in front of the site.

Curl signs its work too, and in the opposite direction. Run it through a proxy that refuses your tunnel and it prints CONNECT tunnel failed, response 502, which really is about the proxy you configured. Note what curl does that Chrome will not: it shows you the status the proxy actually sent, which is the payoff promised in Section 3. There is a dating trick here as well. The older string is Received HTTP code 502 from proxy after CONNECT, or Received HTTP code 503 from proxy after CONNECT for any other number. Nothing has emitted it since curl 7.87.0 in late 2022. A guide still offering it as current is telling you how old its research is. Checked against curl 8.22.0 on 25 September 2026.

Which leaves the one code on that table that needs no test at all.

407 Is Not 401, and One Header Proves It

A 401 and a 407 both mean somebody wants credentials. They differ in who is asking, and the response itself carries the evidence.

A 401 arrives with a WWW-Authenticate header: the website wants you to log in. A 407 arrives with Proxy-Authenticate, which MDN describes as containing "information on how to correctly authenticate requests" to the proxy. Different header, different party, and no ambiguity about which one is asking. It is the one status code where the isolation test in Section 4 is unnecessary, because the answer is already in the response.

Which also makes it the most fixable of the lot. Somebody gave you a proxy and did not give you the credentials, or the ones you have no longer work. In a browser the proxy's own sign-in box appears and you type them there. Everywhere else they go in the proxy URL:

Where the credentials go
curl -x http://username:password@proxy.example.net:8080 https://example.com

# same shape in the http_proxy and https_proxy variables
# it lands in your shell history, so prefer --proxy-user or a config file

If the credentials are right and the 407 keeps coming, stop editing and go and ask. A 407 that survives correct credentials is the proxy's operator telling you something about your account, not a setting you can find.

Applications do not always surface it that cleanly. A client can meet a proxy demanding authentication and report something of its own invention instead, which is what happens in the OneDrive error Microsoft never documented. Which raises the last case, and the strangest one: the failures that produce no error at all.

When the Proxy Is Not Working and Nothing Is Broken

A whole category of proxy server problem produces no error at all. The proxy not working complaint here is that traffic is simply not going through it, and the reason is almost never the proxy. Ask why is my proxy not working when nothing on screen looks broken and the honest answer is usually one of three things, none of which is a faulty proxy.

The commonest version on Windows: you set a proxy, and something ignores it. That is not a fault, it is architecture. Windows keeps more than one proxy configuration and different software reads different ones, which we mapped in where Windows actually keeps its proxy settings. A browser obeying a setting while a command-line tool ignores it is the expected outcome, not a malfunction.

The second version is a setting that reverts. On a managed device, policy re-applies the configuration on its own schedule, so clearing it by hand lasts until the next refresh. The tell is that nobody touched the machine and it changed anyway.

The third is worth checking before either: the proxy works perfectly and you are testing it wrong. A saved field proves only what was typed, a point we made at length in what configuring a proxy actually does. Whether the outside world sees a proxy is a question only the outside world can answer, using the check in Section 2. All three are why advice on how to fix proxy server settings usually misses: in a proxy server not working case the settings are correct and simply unread.

If the failure turns out to sit below all of this, at name resolution rather than proxying, our guide to fixing IP address not found errors covers that layer.

That is every case this topic contains. What is left is the order to take them in.

The Order That Saves an Afternoon

Most answers to how to fix proxy error problems hand you a list of settings to change, in no particular order, with no way of knowing when to stop. Here is everything above compressed into the sequence I would actually run instead. It is short on purpose, and the order is the point.

Step What it rules out
Is it an ERR_ name or a number? An ERR_ name is your browser talking, and the status code, if there was one, may have been suppressed. Decides everything below
If it is a number: read the response headers once Proxy-Status names the intermediary and the fault outright. Via only proves something forwarded it
Same URL with the proxy off Rules the proxy in or out in one move
Fetch it from outside your connection Separates a broken site from a broken path
Read the error body itself A proxy naming itself wrote that page. A relayed one carries the origin's wording
Only now, change something Stops you paying to fix somebody else's server

One note on the other guides, since you will probably read a few. I checked all seven pages ranking for this on 25 September 2026. Two of them cite specifications and are worth your time: Coronium attributes 504, 429 and 407 to their RFCs, and WebScrapingAPI covers RFC 9209. None of the seven mentions the ERR_ layer, which means every one of them explains status codes to a reader who is often staring at a string that is not one. Credit on the other side too: Nimbleway's 502 advice carries the line most of that set will not print, "You may just need to wait until the web server admin fixes the issue."

The Short Version

The proxy error meaning that matters is structural, not a definition. An ERR_ name is your own browser describing a failure, and it may be hiding a status code it decided you should not see. A status code that does reach you says something answered. And whether your proxy produced that code or relayed it from the website is the question with no indicator light, which you settle by testing rather than guessing.

Almost all of it is written down. Chromium publishes what each of its network errors means and why it withholds what it withholds. MDN publishes what each status code means. RFC 9209 even defines a header whose entire job is to name the intermediary that generated the error, which is exactly the question you arrived with, and which most proxies quietly decline to answer.

Run the isolation test before you change anything: the same URL without the proxy, the same URL from outside your connection, a second proxy if you have one, and a proper look at the headers. Two minutes, and it tells you whose problem this is.

And if it is a 502 or a 504 from a struggling origin, the honest answer is that it is not yours, and no purchase changes that. To see what the far end makes of your connection, our IP trust score checker reports how the address you are leaving from is classified, which is where most of these investigations should have started.

Find Out Who Sent That Error
One tool shows what the outside world sees of your connection. The other shows what a website returns to a request that has nothing to do with you. Between them, the question is settled.

Frequently Asked Questions

Q What does a proxy error mean?

A
The proxy error meaning depends entirely on which of three things you are looking at. An ERR_ name is your browser describing a failure in its own words, and it sometimes hides a status the proxy did send. A code that reaches you means something answered. Then comes the question no code settles: did your proxy write that response, or relay it?

Q What does ERR_PROXY_CONNECTION_FAILED mean?

A
Chromium's source defines this one narrowly, and it covers two separate causes: the name would not resolve, or the socket would not open. Either way the browser never reached the proxy at all. So the proxy error meaning here is simple. Nothing at the address you configured answered. Wrong host, wrong port, or a firewall in between.

Q Is a 502 error my proxy's fault or the website's?

A
You cannot tell from the code, and that is the honest answer. A 502 your proxy generated and a 502 it passed along arrive identically. Two things settle it. A Proxy-Status header, if one is sent, names the intermediary outright. Failing that, test: try the URL without the proxy, fetch it from outside your connection, and read the error page for a proxy signing its own work.

Q Will changing proxies fix a 502 or a 504?

A
Usually not. MDN states that fixing such problems "likely requires investigation and debugging by server administrators, or the site may work again at a later time." A struggling backend is not reachable by any purchase you make. The documented exception is a client networking problem, so check whether the site answers everyone else before spending anything.

Q How can I tell which server produced a proxy error?

A
Read the response headers once and look for two things. Proxy-Status, defined by RFC 9209, states which intermediary handled the response and what went wrong, but it is optional and most proxies omit it. Via is commoner and says only that something forwarded the message. On an HTTPS page a visible Via usually came from the site's own CDN, not from your proxy.

Q Why is my proxy not working when the settings look right?

A
Because what sits in a settings field is no proof that anything reads it. On Windows especially, more than one proxy configuration exists and different programs consult different ones, so a browser can honor a setting while a background client ignores it entirely. On a managed device, policy may also restore the old configuration after you clear it.

Q What is the difference between a 407 and a 401?

A
The party doing the asking. A 401 carries WWW-Authenticate and comes from the website you wanted. A 407 carries Proxy-Authenticate and comes from the proxy in between. One header settles it, with no testing required, which makes 407 the one code in this whole subject whose proxy error meaning is never in doubt.
Christopher Vance
Verified Content Expert

Christopher Vance

Web Infrastructure Specialist

Christopher Vance is a network engineer and proxy infrastructure specialist based in Chicago, Illinois, with over 10 years of experience in IP routing, geo-block circumvention, and residential proxy systems. Before joining Trust My IP, he worked on the detection-side of web access technology — giving him a rare inside view of how websites identify and block users. He writes in-depth, tested guides on proxies, web scraping, and open internet access, with a focus on methods that actually work in 2026.

Helpful Insight?

Share with your professional network