Fixing a 407 from your proxy: a credentials checklist
Updated:
A 407 Proxy Authentication Required response tells you two things at once: your traffic reached the proxy, and the proxy did not accept the username and password it received (or received none). The network is not the problem here. Treat a 407 as a login problem and you will usually solve it in a couple of minutes.
Where the login usually goes wrong
- A typo or a stray space. Copying a password from a chat or a spreadsheet often drags an invisible space or line break with it. This is the single most frequent source of 407 reports.
- Values in the wrong boxes. The entire
ip:port:user:passstring is pasted into the host field, or user and password are swapped. Some apps split a pasted line into four fields automatically; many do not. - No credentials sent at all. System-wide proxy settings on Windows, macOS or a phone store a host and port, nothing else. An app that cannot show a login prompt then connects anonymously and the proxy answers 407.
- Unescaped symbols in a proxy URL. In
http://user:pass@host:port, a password containing@,:or#breaks the parsing unless it is percent-encoded, for example@written as%40.
Recognising a 407 in curl, Chrome and the checker
Here is how it looked on our test proxy (shown with the documentation address 203.0.113.10:8080 and the intentionally wrong pair user123:pass456). Requesting an HTTPS page with curl -x http://user123:[email protected]:8080 https://example.com ends with curl: (56) CONNECT tunnel failed, response 407. Requesting a plain HTTP page with -w %{http_code} prints only 407.
Adding -v answers the key question: did the client send a login? In the verbose trace you should see > CONNECT example.com:443 HTTP/1.1, followed by > Proxy-Authorization: Basic ..., and then the 407 reply. When the Proxy-Authorization line is absent, the client never transmitted credentials, so look at the app's settings rather than the password itself.
The ProxyV4 proxy checker labels this situation auth failed (407). Headless Chrome has no login dialog to show, so it reports the same refusal as ERR_TUNNEL_CONNECTION_FAILED, which is explained on the tunnel error page.
Fix it in the tool you are using
- Chrome on Windows: Chrome uses the Windows proxy (Settings > Network & Internet > Proxy), which only holds address and port. When the first page loads, Chrome pops up a sign-in box for the proxy username and password. If you mistyped and the box does not come back, close all Chrome windows and start it again.
- AdsPower, GoLogin, GenLogin and other antidetect browsers: fill Host, Port, Username and Password as four separate values. Rather than correcting a password in place, empty the field and paste a fresh copy. The GoLogin setup guide shows each field.
- iPhone: under Settings > Wi-Fi > (i) > Configure Proxy there is an Authentication switch. If it stays off, the proxy answers 407. Android generally accepts only host and port, so apps that need a login tend to show a vague connection error instead.
- curl: give the login with
-U "user:pass"and keep the proxy URL credential-free. That avoids every special-character problem. - Python requests: put
http://user:pass@host:portunder both thehttpandhttpskeys of theproxiesdict, and run unusual passwords throughurllib.parse.quotefirst.
Login is correct and the 407 remains
Check the proxy type next. ProxyV4 proxies are HTTP(S) with username and password, delivered as one ip:port:user:pass line, so the app should be set to HTTP. Then test the exact line you copied from the dashboard in the checker. If the checker connects and your app still gets a 407, the difference is in how the app stores or sends the credentials.
Step by step
- 1
Copy the line straight from Orders
Open the order in your ProxyV4 dashboard and copy the full proxy line instead of retyping it.
- 2
Test it in the proxy checker
Paste the line into the proxy checker. The result
auth failed (407)confirms the login is the issue, not the network. - 3
Paste user and password again
Empty both fields in your app and paste them fresh, with nothing before or after the text.
- 4
Set the type to HTTP
Choose HTTP as the proxy type, save the profile and reload the page.
- 5
Inspect the trace with curl -v
If the 407 persists, run
curl -vwith your real values and look for aProxy-Authorizationline before the response.
Frequently asked questions
Does a 407 mean my internet provider blocks the proxy?
No. The 407 is generated by the proxy, which proves your connection reached it. A blocked route looks different: a timeout or a refused connection. See proxy timeout.
Why does Chrome keep showing the proxy sign-in box?
Each rejected attempt triggers another 407, and Chrome asks again. Check Caps Lock and make sure your keyboard input method is not adding accents or changing characters in the password.
How do I write a password that contains @ in a proxy URL?
Percent-encode the symbols: @ becomes %40, : becomes %3A, # becomes %23. With curl, passing the login through -U means you do not need to encode anything.
Puppeteer or Selenium shows a tunnel error, not a 407. Is it the same thing?
Often, yes. Headless Chrome cannot ask for a password, so the 407 is reported as ERR_TUNNEL_CONNECTION_FAILED. Pass the credentials through the library's own authentication method, as shown in the Selenium guide.
One line, ready to paste
Each ProxyV4 order gives you an ip:port:user:pass line for a private IPv4 or static ISP address. Copy it once, use it in any app.
Check live prices