Skip to main content
An error comes either from us (the proxy) or from the site you requested. You can always tell which:
Every error from the proxy has an X-Proxy-Error header with a code like PX1002. If the header is missing, the response came from the site and we passed it on unchanged.
The first line of the body repeats the code, so you can read it without checking headers:
Response
Most clients hide this on https:// URLs. An HTTPS request opens a tunnel with CONNECT. When that fails, libraries such as Python requests, Node axios and Go’s http.Client raise a connection error instead of returning the response, so you only see the status, for example Tunnel connection failed: 502 Bad Gateway.curl -v still shows the code, and the table below lists which codes each status can mean. On http:// URLs you can always read the header.
When you can read the code, check the code rather than the HTTP status. Sites use the same statuses, but the codes are ours and won’t change.

Errors You Can Fix

The request needs to change. Sending it again unchanged gives the same error.
A 407 only ever means a problem with your credentials or your data balance. Sending the password again won’t help if the code is PX2002.

Errors Worth Retrying

These come from the exit network. The same request often works a moment later.
Retry with exponential backoff and use a new session-SESSION_ID for each attempt. Retrying the same session with the same narrow targeting tends to hit PX1002 again.

Errors About the Destination

Errors From the Site

If a response has no X-Proxy-Error header, it came from the site you requested, exactly as they sent it. We never change a site’s status, headers or body. This is why the PX code matters: a 403 from us (PX1003) and a 403 from the site need completely different fixes.

Handling Errors in Code

On http:// URLs, read the header:
Python
On https:// URLs, catch the proxy error and check the status in its message:
Python
To see the exact code while debugging an HTTPS request, use curl -v and look at the CONNECT response:
cURL

Reading the Code on HTTPS

If you only have the status, this is what it can mean:

Connection Problems

Some failures happen before there is any HTTP response, so they have no code:

Still Stuck?

Email team@roundproxies.com or visit the Help Center. Include the PX code and the time of the request so we can find the problem quickly.
Last modified on October 15, 2026