Proxy Guides

How to fix ERR_PROXY_CONNECTION_FAILED in Chrome

Fix Chrome's ERR_PROXY_CONNECTION_FAILED by checking the active proxy setting, host, port and connection mode. Verify the endpoint and browser route step by step.

Proxy connection checks for a local client and a direct remote endpoint

Overview

Workflow at a glance

  1. Find the active proxy

    Identify the system setting, extension or local listener that Chrome uses.

  2. Test and verify the route

    Check the endpoint from the same device, then verify the browser exit and original destination.

ERR_PROXY_CONNECTION_FAILED means Chrome could not establish a connection to the proxy it was told to use. The failed step may be resolving the proxy hostname or connecting to its address and port. Start with that connection rather than changing the destination website.

First decide whether you intended to use a proxy. If an old local app left an unwanted setting behind, correct that setting. If the proxy is part of your workflow, keep the route and check its host, port, protocol and availability. On a managed device, use the configuration supplied by your administrator.

The steps below help you distinguish a browser setting problem from an unreachable endpoint and verify the repair from your own browser.

On this page: Find the active setting · Check connection fields · Test the route · Read the result · Verify the fix · FAQ

Start with the symptom you can reproduce

Proxy connection checks for a local client and a direct remote endpoint
Check the active browser route, then test the local listener or remote endpoint it uses.

What you observe

Check first

What the result tells you

Chrome fails, but a different application works

Chrome's proxy extension, policy and system proxy setting

The applications may be using different routes

A proxy address is 127.0.0.1 or localhost

The local proxy application and its listening port

The address points to this device; a closed app leaves nothing to accept the connection

A connection test fails on the same device

Endpoint spelling, port, protocol and network reachability

The failure is not limited to Chrome's page rendering

A remote checker succeeds but your browser fails

Your local network path and browser configuration

The checker and browser reach the endpoint from different places

The connection returns HTTP 407

Proxy authentication

The proxy answered; move to credentials or the required authentication method

One site fails while an exit-IP check works

The target response and any target-specific rule

The proxy route works for at least one request; keep the actual target error

1. Find the proxy setting Chrome is actually using

Open Chrome's Settings → System, or enter chrome://settings/system. Check whether the proxy setting is controlled by an extension or your organization. Otherwise, open the computer's proxy settings and inspect the active network configuration.

On Windows

Open Settings → Network & internet → Proxy. Inspect both the setup script and manual proxy sections. Record the existing values before editing them. If you intentionally use a proxy, correct the supplied server address and port. If a setting belongs to a local proxy app that you have stopped using, remove that specific setting and save.

On macOS

Open System Settings → Network, select the active network service, then choose Details → Proxies. Check the enabled HTTP, HTTPS, SOCKS or automatic configuration entry. Correct the entry used by your workflow; a change made to another network service will not repair the active one.

If an extension controls the proxy

Open the extension and inspect the selected profile. Check its endpoint and routing rules. To isolate an unwanted extension setting on your own unmanaged browser, temporarily turn off that extension and retest. Record which setting changes the result so you can restore the intended route afterward.

If the address is local

Start the local proxy app and confirm its current listening port. Do not assume a port such as 7890 or 8080 is correct for every client. The browser must point to the port that the application is actually listening on. The local app's upstream proxy is a separate connection.

For settings navigation, see the official Windows guide and macOS guide.

2. Check the endpoint you copied

Open the connection record for the proxy you intend to use. Compare fields one at a time instead of repeatedly pasting a complete connection string.

Field

Check

Host

Use the connection host supplied by the provider, not a website URL or a separate displayed exit IP

Port

Use the port paired with that host and protocol; keep it separate from a local client's listening port

Protocol

Match HTTP, HTTPS or SOCKS to the endpoint and client; an HTTPS destination does not by itself mean you should select an HTTPS proxy

Authentication

Use proxy credentials, with no extra spaces; do not substitute your website-account password

Availability

Check plan expiry, balance or applicable usage limits and the current allocation

For MIYAIP static proxies, open Purchased IPs and choose the intended native or relay details. A native connection from mainland China needs a working overseas network path. A relay connection uses its assigned relay host and port. Copy the complete set from one mode instead of mixing a native IP with a relay port.

MIYAIP static proxy connection address, port, credentials and exit IP, with values redacted

MIYAIP connection details separate the connection address from the exit IP. The source screenshot uses Chinese labels: 原始代理详情 = native proxy details; IP 地址 = connection IP; 端口 = port; 用户名 = username; 密码 = password; 出口 IP = exit IP. Values are redacted.

3. Test the endpoint, then test from your device

Open the MIYAIP Proxy Checker. Enter the endpoint you are checking, select the matching protocol and run a check. Read the reported reason if it fails: a timeout, a refused connection and an authentication error call for different changes.

The checker runs from MIYAIP's test service. It can provide a second observation of the endpoint, but its result does not show whether your own network or Chrome profile can reach the same endpoint.

For a same-device test, follow the curl and Python connection guide. Use the assigned endpoint, a supported protocol and a short timeout. Compare the proxied result with the connection you intended to use. Keep the test endpoint consistent when comparing results.

If your local proxy app uses localhost, test it on the device running that app. A remote proxy checker cannot reach a listener on your computer's loopback address.

Next steps

4. Change the setting indicated by the result

Result

Next action

Proxy hostname cannot be resolved

Recopy the hostname and check whether it resolves from the same network. Do not replace it with an exit IP shown elsewhere in the dashboard.

Connection refused

Check that the host and port belong together. For a local address, confirm that the proxy app is running and listening on that port.

Connection times out

Check the network path, native-versus-relay requirements and endpoint availability. Compare with a second permitted network or provider support before changing unrelated browser settings.

HTTP 407 or repeated proxy sign-in prompts

Verify the proxy credentials and authentication method. An HTTP response shows that a proxy answered; this is a different stage from failing to reach its port.

Endpoint works locally, Chrome still fails

Recheck the browser's selected proxy profile, extension rules, system settings or managed policy. Confirm that Chrome uses the same endpoint as the successful test.

Exit-IP check works, target site fails

Record the target status or message. Investigate that target and its access rules instead of treating every failure as the same connection error.

Changing all settings at once makes the cause harder to identify. Retest the same small request after each relevant correction. If the error changes, use the new error to choose the next step.

5. Verify the browser route after the fix

  1. Reopen the affected page in the same Chrome profile and network where the error occurred.
  2. Open the IP and browser environment check in that profile. Inspect the exit observed by the page.
  3. Compare the result with the intended proxy. For a fixed proxy, compare it with the assigned exit. For a rotating product, check the selected location and session behavior rather than expecting a permanent address.
  4. Open the original target again. A successful IP check and a successful target request answer different questions; keep both observations.
  5. Restore any extension or route temporarily changed during diagnosis, then repeat the browser check under the configuration you will actually use.

If the problem remains, share the browser version, timestamp, connection mode, redacted host/port, exact error and whether a same-device test succeeded. That gives support a reproducible starting point without exposing a complete authentication string.

Frequently asked questions

Does this error mean my internet connection is down?

Not necessarily. Chrome may be trying to use a proxy that it cannot reach while other applications use a different route. Check the active proxy setting and test from the same device.

Should I disable the proxy?

Only if the setting is unwanted and your intended connection does not require it. If the proxy is part of a work or managed-network setup, correct the route or ask the administrator for its current configuration.

Will clearing cookies fix ERR_PROXY_CONNECTION_FAILED?

Cookies do not correct a wrong proxy hostname or a closed port. Begin with the effective proxy setting and endpoint reachability. Investigate site data only if the evidence later points to a site-specific issue.

Why does a proxy checker say “live” while Chrome still fails?

The checker and Chrome may use different networks, protocols or credentials. A remote checker can reach an endpoint that your local network cannot reach. Compare the same endpoint from your device and confirm Chrome's selected profile.

Is net::ERR_PROXY_CONNECTION_FAILED in Playwright a different error?

It is the Chromium connection error surfaced by the automation client. Check the proxy supplied when the browser was launched and whether the browser's runtime can reach that endpoint. A local address inside a container points to that container, not automatically to your host computer.

Is HTTP 407 the same problem?

No. HTTP 407 is a proxy authentication response. Focus on the credentials and supported authentication method once the proxy has answered. The MIYAIP connection guide covers that branch.

Check the endpoint, then confirm the route

Use a connection test to inspect the proxy, and verify the exit from the browser profile you will use for your task.

Next steps

Browse setup guides

If the proxy is reachable but HTTPS tunnelling fails, continue with the CONNECT tunnel troubleshooting guide.

Run the local demonstration

Download network_demo.py, or copy the complete source below into a file with that name. Run python network_demo.py using Python 3. The service listens only on 127.0.0.1:8766; stop it with Ctrl+C.

"""Local HTTP demonstration. No external requests, credentials or MIYAIP service calls."""
from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer
from urllib.parse import urlsplit
import json
import time


class DemoHandler(BaseHTTPRequestHandler):
    def log_message(self, *_):
        pass

    def reply(self, code, body=b"", headers=None):
        self.send_response(code)
        for key, value in (headers or {}).items():
            self.send_header(key, value)
        self.send_header("Content-Length", str(len(body)))
        try:
            self.end_headers()
            self.wfile.write(body)
        except (BrokenPipeError, ConnectionResetError, ConnectionAbortedError):
            pass

    def do_CONNECT(self):
        self.reply(407, headers={"Proxy-Authenticate": 'Basic realm="local-demo"'})

    def do_GET(self):
        path = urlsplit(self.path).path
        if path == "/redirect":
            return self.reply(302, headers={"Location": "/headers"})
        if path == "/loop":
            return self.reply(302, headers={"Location": "/loop"})
        if path == "/slow":
            time.sleep(2)
        if path in {"/headers", "/slow"}:
            payload = {"method": self.command, "headers": dict(self.headers)}
            return self.reply(200, json.dumps(payload, indent=2).encode(),
                              {"Content-Type": "application/json"})
        self.reply(404, b"Use /headers, /redirect, /loop or /slow")

    def do_POST(self):
        body = self.rfile.read(int(self.headers.get("Content-Length", "0")))
        if urlsplit(self.path).path == "/redirect307":
            return self.reply(307, headers={"Location": "/headers"})
        if urlsplit(self.path).path == "/redirect302":
            return self.reply(302, headers={"Location": "/headers"})
        payload = {"method": self.command, "headers": dict(self.headers),
                   "body": body.decode("utf-8", errors="replace")}
        self.reply(200, json.dumps(payload, indent=2).encode(),
                   {"Content-Type": "application/json"})


if __name__ == "__main__":
    print("Local demonstration: http://127.0.0.1:8766 (Ctrl+C to stop)", flush=True)
    ThreadingHTTPServer(("127.0.0.1", 8766), DemoHandler).serve_forever()

Sources