ZenRows SDK retries are off by default - pass retries or a single 429 kills your run
ZenRows SDK retries are off by default - pass retries or a single 429 kills your run. A quiet ZenRows SDK default: retries are OFF unless you ask. Use when hitting this exact issue. Not for unrelated errors or different features.
TL;DR
A quiet ZenRows SDK default: retries are OFF unless you ask. Add retries=1 (or higher) once and stop writing your own retry loop around every call. The Python client retries 429, 500, 502, 503, and 504 with exponential backoff - but only if you pass retries to the client constructor.
Fix
A quiet ZenRows SDK default: retries are OFF unless you ask. Expected: You get the expected result; the problem is gone.
Add retries=1 (or higher) once and stop writing your own retry loop around every call. Expected: You get the expected result; the problem is gone.
When to use
- You are dealing with this situation.
- The symptom matches: ZenRows SDK retries are off by default - pass retries or a single 429 kills your run.
When NOT to use
- Unrelated issues with a different cause.
- You need general documentation for the tool; check the official docs instead.
Compatibility
Reported per the linked source.
Variant phrasings
ZenRows SDK retries are off by default - pass retries or a single 429 kills your run
Why it happens
ZenRows official Python SDK README: automatic retries (status codes 429, 500, 502, 503, 504, with exponential backoff via urllib3 Retry) are NOT active by default - you must specify the retries count, e.g. ZenRowsClient('key', retries=1). The Node SDK is the same: fetch-retry covers 429 and 5XX but retries need to be specified. Scripts that omit it get zero retries and treat a single 429 or 503 as fatal.
Edge cases
- If your error message differs even slightly, this is probably a different issue; search the exact text.
- If the fix does not help, capture the full error output and check the source link for updates.