Docs
Production operations

Errors and retries

Retry transient failures without duplicating work or hiding bad requests.

Berrycrawl uses standard HTTP status families and includes a concrete failure message in error responses.

StatusMeaningAction
400Invalid URL, option, schema, or request bodyFix the request; do not retry unchanged
401Missing, invalid, or revoked API keyReplace or rotate the key
402Insufficient creditsTop up the workspace
404Unknown job or routeCheck the identifier and environment
409Conflicting stateRead current state before another write
429Rate or concurrency limitBack off with jitter and reduce concurrency
502Upstream site or provider failureRetry a small number of times
503Required browser, proxy, AI, or storage dependency unavailableRetry later or use a cheaper compatible mode
504Operation timed outRetry, narrow the work, or use an async endpoint

Retry policy

Use capped exponential backoff with jitter for 429, 502, 503, and 504. A practical sequence is 1, 2, 4, 8, then 16 seconds with random variation. Cap the total attempts and surface the final Berrycrawl reason to the caller.

Do not automatically resubmit a crawl or extract job if its creation response may have been delivered. First check your stored job identifier or idempotency boundary. Polling a known job is safer than creating a duplicate.

On this page