Proxy Server Error Response Messages

This article is designed to help you identify and resolve errors coming from a ProxyMesh proxy server. Some errors come from the proxy server, and other errors come from the remote site. You can determine the source by inspecting the response body, which appears after the numeric error code in a response. ProxyMesh error messages bodies are listed in this article, to help you distinguish and understand proxy server errors.

Error response bodies generally include both the three-digit code and any one of several reasons, or message bodies, which further define the nature of the error. This helps you find the solution in individual cases. For example, note the different solutions suggested in this article for a 402 error, depending on the accompanying message bodies:

  • 402, account is inactive
  • 402, access to PROXY-NAME proxy not authorized
Code Message Comments and Resolution
400 malformed syntax This happens if the HTTP request from the client code/library is malformed, e.g., by a syntax error or inclusion of characters that the server would not understand.
Host header missing Valid HTTP request should have a Host header.
invalid http request The server could not understand the request, usually because of invalid request message framing.
402 HTTP 402 messages mean payment required. Below, several scenarios for ProxyMesh users are described. Note: If you get too many 402 response codes from a proxy, your IP will be temporarily blocked for up to 4 hours, during which time you will get Connection Refused errors.

account is inactive Contact Support if you need access to reactivate your account or resolve payment issues.

parent account is inactive Contact Support if you need access to reactivate your account or resolve payment issues.

access to PROXY-NAME proxy not authorized Go to Edit Proxies in your account dashboard to authorize that proxy, or use a different proxy that has not sent the errors, and try again immediately.

If you receive a 402 error when you are trying to connect to a specific proxy, but are sent to a different proxy, this can mean that something is not configured correctly at your end. Please check your configurations. If you are using middleware, consider using the Scrapy default proxy configuration.
403 this host is forbidden The remote site has been blocked and can only be accessed through the Open Proxy server or the World Proxy server. As appropriate, use one of those servers.
This can happen with a request via ProxyMesh for access to a Google site or a search engine. ProxyMesh doesn't work well for that type of request, and we recommend Trusted Proxies or Luminati instead.
407 bad password This indicates a failure of your username information or password information. You can update your password as needed on the Change your Password page of your dashboard.  The Proxy Authentication article provides details.

You might consider using IP authentication and removing the username:password authentication to prevent bad password failure due, for example, to an old password.
Basic authorization required Follow the steps in Basic access authentication to provide a user name and password when making a request.
Proxy authorization required

No IP or valid Basic Authentication header was given in the request to the proxy.

A large number of 407 request errors from one particular proxy server, while requests through other proxy servers are working correctly, may indicate a configuration issue.

  • Do you have 2 or more different scripts, and could one of them be misconfigured?
  • Has your IP changed, and have you added your IP address for authentication? If so, please make sure you are not passing in any username:password authentication headers, which are the most likely cause of the 407 responses. Use only IP authentication.
  • Please note that after you add an IP to your account, it should be authorized at the servers within a few minutes. Please be sure you do this first before you make requests from that IP to avoid a temporary block.

If your IP has changed, you can update your IPs from your account dashboard. Then our proxy server forwards your requests after removing any request headers that might compromise your privacy and anonymity.

See Proxy Authentication and Proxy Connection Problems for details.

too many failures If you get too many 407 response codes from a proxy, your IP will be temporarily blocked for up to 4 hours, during which time you will get Connection Refused errors. A 407 error indicates an authentication problem. The easiest way to fix this is to Add your IP to ProxyMesh.  
Be aware that authorizing an IP's access to the proxy during a 4-hour ban does not immediately lift the ban. You still need to wait until the 4 hours are up.
408 request timeout You will get a 408 response code if the remote server does not respond within the proxy server’s default response timeout of 20 seconds and the target server will close down the request. If you need to wait longer for a complete response, use the X-ProxyMesh-Timeout header to specify the number of seconds you want to wait. If a significant portion of your requests are timing out ( 408 response code), it may be because the network connections between you and the proxy and/or between the proxy and the remote site are unreliable. Try some different proxies and see if that fixes the problem.
The proxy IPs may have been blocked by the remote site. If you think this is the case, then you'll want to switch proxies, and ideally use multiple proxies to distribute your requests.
If you suspect that specific IPs are triggering the 408 error response, you can review the X-ProxyMesh-IP response header to see which IPs are being used for a request, and perhaps filter them out.
If only a small percentage of your requests are getting a 408 response code, it's best to retry your requests up to 3 times, ideally with a short delay of at least 1 second between each retry and the next one.
Please see Proxy Server Request & Response Headers and Request Retry Strategies for detail.
500 This error can occur for a number of different reasons, with various message bodies. Retries can often resolve the problem.

Specific IPs can get blocked, especially when crawling at high volumes. One mitigation is to combine a retry strategy with custom headers, in order to control which IP addresses are not used. The way this could work is:
  • Make first request
  • Receive 500 error response code
  • Get the IP from the X-ProxyMesh-IP response header
  • Add this IP to a "not IP" list
  • Retry the request with a X-ProxyMesh-Not-IP header containing the IP
  • Receive 200 success response code
The X-ProxyMesh-Not-IP header can take a comma-separated list of IP addresses, assembling bad IPs to skip for future requests. If you use it:
  • Make sure the list is specific to the target domain.
  • Do not cache the IPs for more than 1 day, as they will be out-of-date or offline after 12 hours.
  • Remember to check the user agent in a custom header string so that it is associated with the appropriate web browser.
error connecting to proxy These errors tend to be more common for the open proxy. If you use the open proxy, we recommend implementing a good retry strategy. Please see the Open Proxy article for additional details.
error proxying data These errors tend to be more common for the open proxy. If you use the open proxy, we recommend implementing a good retry strategy. Please see the Open Proxy article for additional details.
error receiving data These errors tend to be more common for the open proxy. If you use the open proxy, we recommend implementing a good retry strategy. Please see the Open Proxy article for additional details.
error sending data These errors tend to be more common for the open proxy. If you use the open proxy, we recommend implementing a good retry strategy. Please see the Open Proxy article for additional details.
Please see Proxy Server Request & Response Headers and Request Retry Strategies for detail.
502 unknown ip address The IP requested in the X-ProxyMesh-IP request header cannot be found. This response will include X-ProxyMesh-IP as well as X-ProxyMesh-IP-Not-Found both containing the same IP as the X-ProxyMesh-IP request header. You will need to choose a different IP address for your request.
 
If these headers are not present in the response, then this response came from the remote site, not the proxy server.
503 Several different situations can generate a 503 error, and each situation produces a different response message body. All of these situations are temporary, generally lasting a few minutes at most. Retry after a pause.

Any response body for 503 other than the ones below likely indicates a rate limit response from the remote site. If this happens regularly, try using a different proxy server, or slowing down your crawl. Please see Non-Standard Error Messages for more details.
error connecting to proxy These errors tend to be more common for the open proxy. If you use the open proxy, we recommend implementing a good retry strategy. Please see the Open Proxy article for additional details.

service unavailable The proxy server cannot handle requests right now. This is rare, but can happen under high load situations. See High-Traffic Proxy Connections.
no available IP addresses You have excluded all available IPs in the X-ProxyMesh-Not-IP request header. Wait until the IPs rotate, or reduce the number of excluded IPs.
no proxies available There are no outgoing IPs available. If you get the 503 response when using the X-ProxyMesh-Country header, then you have chosen a country value with no IPs. The open and world proxies have IPs in multiple countries. Use the X-ProxyMesh-Country header to restrict the IP choices to a specific country. The value of the header should be a 2 character ISO country code, such as US or RU. Check the status page for each proxy to see what country codes and how many IPs are currently available. Otherwise, this response is due to an error in the IP rotation. This is rare, likely due to an issue with the hosting provider, and will generally be fixed within 1 hour. Try again in a few minutes.
proxy error The proxy server cannot connect to an outgoing IP. This happens more often with the open proxy server, due to the unreliability of the open proxies. Retry after a short delay.
server error Something went wrong in the proxy server while trying to authenticate. This is very rare. Retry after a short delay.
too many errors Your requests have generated more than 60 response errors (with a status code of 400 or greater) over the past 30 seconds. You need to fix what you're doing to stop producing so many errors. For example, if you are submitting request to Google and they bring repeated error responses, be aware that ProxyMesh doesn't work well for requests to Google. We recommend trustedproxies.com or Luminati instead. A remote site may regularly send a 503 response indicating rate limits. Try using a different proxy server or slowing down your crawl.

too many connections

On the proxy server, having more than 100 connections from a single IP address would constitute an undue load. You will then receive this error. It is much better and more efficient to use a shared connection or connection pool for proxy connections. You can also access the proxy server from multiple IP addresses.

Any response body for 503, other than those above, likely comes from the remote site. For those cases, please see Request Retry Strategy and Non-Standard Error Messages.

504 gateway timeout Timeout connecting to proxy. This usually means that the outgoing proxy server is down. This error tends to be more common for the open proxy. If you use the open proxy, we recommend implementing a good retry strategy. Please see the Open Proxy article for additional details.
509 bandwidth limit exceeded You have exceeded your bandwidth limit. This response will continue until your next bill has been processed, or you raise the limit. Please see Bandwidth Limits for full details.

Client-Side Message: cURL Error 56

On occasion, especially while running a high-traffic proxy connection, you may see a response message from an additional source, namely the cURL command-line tool for data transfer using various protocols. A message example is described below.

Code Message Comments and Resolution
56 Proxy CONNECT aborted due to timeout This does not necessarily indicate a true outage on the proxy. There could have been network issues in between, or perhaps some of the outgoing IPs were temporarily blocked by the remote site. To reduce the impact of timeout errors, try these steps:
  1. Upgrade your plan and distribute your requests across multiple proxies.
  2. Implement a retry strategy in your app, so that when a timeout occurs, you try a different proxy, and/or wait 1 second before retrying.

Still need help? Contact Us Contact Us