ERR_NO_SUPPORTED_PROXIES: Chrome Found No Usable Proxy

Chrome shows this error when no proxy it can actually use is left in the settings. Most often the proxy string itself is the problem: it contains a username and password or a scheme Chromium does not know.

Updated · Prokso editorial team

Key takeaways
  • ERR_NO_SUPPORTED_PROXIES means no usable proxy is left in Chrome after its checks
  • Most often Chromium drops a string with a username and password or with the socks5h scheme
  • Keep only the scheme, host and port in --proxy-server, and pass the username separately or turn on IP access

What the error means

In the Chromium error list (net_error_list.h), code -336 ERR_NO_SUPPORTED_PROXIES is described as: there are no supported proxies in the provided list. It is not a response from the site or from the Prokso gateway: the browser did not even try to connect, because it had nowhere to go.

According to the Chromium source code, before a request the browser removes proxies whose schemes it does not support for that request. What remains is http, https, socks4 and socks5 (socks:// is also read as SOCKS5). If the list is empty after that, the request ends with exactly this error.

An important detail: entries that Chromium cannot parse are silently discarded. A string with a username and password, such as http://USERNAME:PASSWORD@gw.prokso.com:823, is invalid for it, because the proxy address parser does not accept credentials. So --proxy-server with such a string does not trigger a login prompt; it leaves an empty list and ERR_NO_SUPPORTED_PROXIES.

Causes

  • A username and password in the proxy string. Chromium drops a proxy address that contains USERNAME:PASSWORD@ and is left with no proxy at all. This happens with the --proxy-server flag, in Puppeteer and in Selenium.
  • An unknown scheme. Chromium knows the schemes http, https, socks4, socks5 and socks. A string like socks5h://gw.prokso.com:824, which works in curl and Python, is not recognized by Chrome and gets dropped.
  • A malformed address. An empty port after the colon (gw.prokso.com:) or extra characters also make the entry invalid, and it falls out of the list.
  • A scheme not available for this request. For example, Chromium uses a QUIC proxy only when QUIC is enabled and the request is not a WebSocket. This does not apply to Prokso proxies, but the error would be the same.

How to fix it

  1. Remove the username and password from --proxy-server: keep only the scheme, host and port, for example --proxy-server=http://gw.prokso.com:823.
  2. Pass the credentials separately: in Puppeteer with page.authenticate(), in Playwright with the username and password fields of the proxy option. Step by step in the Puppeteer and Playwright guides.
  3. For Chrome under Selenium, which has no separate password field, add your IP address to IP access in the dashboard (up to 5 addresses): then no username is needed. Details in the Selenium guide.
  4. Replace socks5h:// with socks5://: according to the Chromium documentation, with SOCKS5 the browser resolves site names on the proxy side anyway.
  5. Keep in mind that Chrome does not support SOCKS5 with a username and password. For username login use HTTP port 823 or the sticky ports 10000-20000; for port 824 use IP access. What SOCKS5 is: see the glossary.

How to check that it works

Start the browser with the corrected string and open https://prokso.com/ip: the page returns JSON with the IP, country and ASN. If it shows the proxy address, the settings were applied. If ERR_PROXY_CONNECTION_FAILED appears instead of ERR_NO_SUPPORTED_PROXIES, the string is now correct and the problem is the connection to the gateway.

Two-minute diagnosis

First paste the line into the proxy checker. If the proxy works there, the cause is in your app or its settings. If not, test the line from a terminal:

curl -v -x "http://USERNAME:PASSWORD@gw.prokso.com:823" https://api.ipify.org
  • A < HTTP/1.1 407 line right after CONNECT means the proxy answered. The name after the code, for example NO_USER, points to the cause.
  • The proxy answered CONNECT with 200 and then another code arrived - the proxy works, and that answer came from the website.
  • No answer at all, only a timeout - the connection never reached the proxy: check the host, port and network.

Setup guides where this error comes up

FAQ

Why does curl work with this string and Chrome does not?

curl accepts a username and password right in the proxy address and knows the socks5h scheme. Chromium parses the string differently: it does not accept credentials in the proxy address and does not know socks5h. The full string syntax is on the <a href="/en/help/gateway">gateway</a> page.

Can I put the username into a PAC file?

No. A PAC script returns only the proxy type, host and port, for example PROXY gw.prokso.com:823, and Chromium drops an address with a username there as well. Pass the username separately or turn on IP access.

How can I quickly check that the username and password are correct?

Paste the string into the <a href="/en/tools/proxy-checker">proxy checker</a>. If it passes, the issue is how the string is passed to the browser. If not, go through the <a href="/en/help/troubleshooting">step-by-step check</a>.

Residential $1.59, mobile $2.50, datacenter $0.65 per GB

Sign up in a minute, get access right after payment.

Create account