IP Address Blocked or Connection Refused/Aborted
ZenRows has protective measures in place to safeguard the infrastructure from abusive behavior and malformed traffic. If too many faulty requests are made in a short period, our system will temporarily block your IP address to maintain service reliability and fairness for all users.
When a block is triggered, you may encounter one of the following errors:
BLK0001 IP Address Blocked
Connection Refused/Aborted
RemoteDisconnected('Remote end closed connection without response')
Understanding why your IP was blocked, and how to avoid it, is key to keeping your scraping processes stable and efficient.
To resolve the issue, check the error code and error body from your previous request. These details will help you identify the cause of the block.
What Triggers an IP Block?
Faulty requests are the cause of an IP block. These include:
- Invalid or missing parameters
- Unauthorized or unverified access
- Requests to unsupported or blocked domains
- Too many concurrent requests beyond plan limits
Here are specific error types that can trigger a temporary IP block:
HTTP Code | Error Codes | Description |
---|---|---|
400 | REQS001, REQS002, REQS004, RESP004, REQS006, RESP008 | Malformed or incomplete requests |
401 | AUTH001, AUTH002, AUTH003 | Missing or invalid API key |
403 | AUTH009 | Unverified account access |
405 | REQS005 | Unsupported HTTP method |
419 | AUTH006, AUTH008 | Concurrency or rate limit exceeded |
Common Errors and How to Resolve Them
Below are the most common reasons for blocks and their solutions:
400 Bad Request
REQS001 Requests to This Domain Are Forbidden
ZenRows proactively blocks scraping attempts to certain domains to comply with legal, ethical, or technical guidelines.
Solution:
Check the Forbidden Domains Documentation Page for more details and avoid targeting these domains.
REQS002 Request Requirements Unsatisfied
Some domains require the js_render
and/or premium_proxy
features to be active to bypass protections such as JavaScript-based content or regional blocks.
Solution:
Check the error body for details on which feature is needed and retry your request with them applied:
REQS004 Invalid Params Provided
One or more parameters in your request are unrecognized or incorrectly formatted.
Solution:
- Double-check all query parameters
- Ensure URLs are properly encoded
- Refer to the API Reference for supported parameters
RESP004 CSS Extractor Parameter is Not Valid
The css_extractor
parameter is malformed.
Solution:
- Review your selector and consult the CSS Selectors Documentation.
REQS006 Invalid CAPTCHA Solver Key
An incorrect or missing key for 2Captcha was configured on the Integration Page.
Solution:
Before using the solve_captcha
JavaScript Instructions verify that the correct CAPTCHA solver key is entered in your account.
solve_captcha
instruction will also result in errors and an IP block.RESP008 Non-Retryable Error not Related to ZenRows
This error indicates a domain-specific issue (e.g., configuration or certificate problems).
Solution:
- Review the full error message. These errors usually cannot be resolved by modifying the API request.
401 Unauthorized Errors
AUTH001 / AUTH002 / AUTH003 – API Key Issues
Common when:
- API key is missing
- API key is invalid or deleted
Solution:
Retrieve or regenerate your API key from the Settings Page and update your requests accordingly.
403 Forbidden
AUTH009 User is Not Verified
Your account email must be verified to access the API.
Solution:
Check your inbox for a verification link. Didn’t receive it? Contact success@zenrows.com.
405 Method Not Allowed
REQS005 Method Not Allowed
ZenRows only supports GET
, POST
, and PUT
.
Solution:
Avoid using unsupported methods like DELETE
or PATCH
.
GET
.419 Too Many Requests
AUTH006 Concurrency Exceeded
You’re making more simultaneous requests than your plan allows.
Solution:
- Implement a queue system in your code to limit concurrent requests.
- Monitor the
Concurrency-Remaining
response header to adjust your request rate dynamically.
CTX0001 Context Cancelled
) does not release concurrency immediately. ZenRows requests can take up to 3 minutes to complete, and cancelling them prematurely may still impact your concurrency limits, potentially resulting in blocks.For more details, see the Concurrency Documentation
AUTH008 Rate Limit Exceeded
Similar to the concurrency error, this occurs when you exceed your rate limit. Monitor the Concurrency-Remaining
response header and adjust your request rate to avoid blocks and apply the suggested solutions.
Best Practices to Avoid IP Blocks
- Validate your requests before sending them
- Use error handling to detect and stop faulty retries
- Limit concurrency based on your subscription tier
- Monitor the
Concurrency-Remaining
response header - Use
js_render
andpremium_proxy
when necessary - Avoid retrying on 400 and 401 errors as they are not recoverable by retries
- Remove any timeout from your script to avoid cancelling your request prematurely causing issues on your concurrency