Crawler API Errors

The Crawler API returns standard HTTP status codes and detailed error information to help you troubleshoot issues. This page lists error codes specific to crawler operations and inherited errors from the Web Scraping API.

Crawler-Specific Errors

The Crawler API has specific error codes that are unique to crawler operations:

The given crawler uuid is already scheduled

Crawler configuration error

Intelligent Error Handling

The Crawler automatically monitors and responds to errors during execution, protecting your crawl budget and preventing wasted API credits. Different error types trigger different automated responses.

Fatal Errors - Immediate Stop

These errors immediately stop the crawler to prevent unnecessary API credit consumption. When encountered, the crawler terminates gracefully and returns results for URLs already crawled.

Fatal error codes:

What happens when a fatal error occurs:

  1. Crawler stops immediately (no new URLs are crawled)
  2. URLs already crawled are saved with their results
  3. Crawler status transitions to completed or failed
  4. Error details are included in the crawler response

Throttle Errors - Automatic Pause

These errors trigger an automatic 5-second pause before the crawler continues. This prevents overwhelming your account limits or proxy resources while allowing the crawl to complete successfully.

Throttle error codes:

What happens during throttling:

  1. Crawler pauses for 5 seconds
  2. Failed URL is added back to the queue for retry
  3. Crawler continues with next URLs after pause
  4. Process repeats if throttle error occurs again

High Failure Rate Protection

For certain error types (anti-scraping protection and internal errors), the crawler monitors the failure rate and automatically stops if it becomes too high. This prevents wasting credits on a crawl that's unlikely to succeed.

Monitored error codes:

Failure rate threshold:

  • Monitoring window: Last 10 scrape requests
  • Threshold: 70% failure rate (7 or more failures out of 10)
  • Action: Crawler stops immediately to prevent credit waste
  • Reason: Indicates systematic issue (website blocking, ASP changes, API issues)

How to handle high failure rate stops:

  1. Review error logs: Check which specific errors are occurring most frequently
  2. ASP errors: The target site may have updated their protection - contact support for assistance
  3. Adjust configuration: Try different asp settings, proxy pools, or rendering options
  4. Wait and retry: Some sites have temporary blocks that clear after a period
  5. Contact support: If issues persist, our team can help analyze and resolve ASP challenges

Error Statistics & Monitoring

When a crawler completes (successfully or due to errors), comprehensive error statistics are logged and available for analysis. This helps you understand what went wrong and how to improve future crawls.

Statistics tracked:

  • Total errors encountered
  • Breakdown by error code (e.g., 3x ERR::THROTTLE::MAX_REQUEST_RATE_EXCEEDED)
  • Fatal errors that stopped the crawler
  • Throttle events and pause counts
  • High failure rate trigger details

Accessing error details:

  1. Crawler summary: Use GET /crawl/{uuid} to view overall error statistics
  2. Failed URLs: Use GET /crawl/{uuid}/urls?status=failed to retrieve specific failed URLs with error codes
  3. Logs: Check your crawler logs for detailed error tracking information

Inherited Web Scraping API Errors

Since the Crawler API makes individual scraping requests for each page crawled, it can return any error from the Web Scraping API. Each page crawled follows the same error handling as a single scrape request.

Common inherited errors by category:

Scraping Errors

The protocol is not supported only http:// or https:// are supported

The website you target respond with an unexpected status code (>400)

Scrape Configuration Error

Cost budget has been reached, you must increase the budget to pass this target

Country not available

The DNS of the targeted website is not resolving or not responding

The Domain targeted is not allowed or restricted

The DOM Selector is invalid

The requested DOM selected is invisible (Mostly issued when element is targeted for screenshot)

The requested DOM selected was not found in rendered content within 15s

Driver used to perform the scrape can crash for many reason

Driver do not have enough resource to render the page correctly

Driver timeout - No response received

Response format conversion failed, unsupported input content type

The javascript to execute goes wrong, please read the associated message to figure out the problem

Network error happened between Scrapfly server and remote server

Server of upstream website closed unexpectedly the connection

No browser available in the pool

This is a generic error for when timeout occur. It happened when internal operation took too much time

Platform not available

The limit set to the current project has been reached

You reach your scrape quota plan for the month. You can upgrade your plan if you want increase the quota

Submitted scenario would require more than 30s to complete

Javascript Scenario Failed

Javascript Scenario Timeout

Upstream website have SSL error

You reach concurrent limit of scrape request of your current plan or project if you set a concurrent limit at project level

Unable to take screenshot

The website you target made too much time to response

The website you tried to scrape have configuration or malformed response

Proxy Errors

The desired proxy pool is not available for the given domain - mostly well known protected domain which require at least residential networks

Provided Proxy Pool Name do not exists

Country not available for given proxy pool

Proxy are saturated for the desired country, you can try on other countries. They will come back as soon as possible

Proxy connection or website was too slow and timeout

Proxy is unavailable - The domain (mainly gov website) is restricted, You are using session feature and the proxy is unreachable at the moment

Throttle Errors

Your scrape request has been throttled. API Credit Budget reached. If it's not expected, please check your throttle configuration for the given project and env.

Your scrape request has been throttled. Too many concurrent access to the upstream. If it's not expected, please check your throttle configuration for the given project and env.

Your scrape request as been throttle. Too much request during the 1m window. If it's not expected, please check your throttle configuration for the given project and env

Anti Scraping Protection (ASP) Errors

Something wrong happened with the captcha. We will figure out to fix the problem as soon as possible

The budgeted time to solve the captcha is reached

The ASP encounter an unexpected problem. We will fix it as soon as possible. Our team has been alerted

The ASP shield previously set is expired, you must retry.

  • Retryable: Yes
  • HTTP status code: 422

The feature requested is not eligible while using the ASP for the given protection/target

The ASP shield failed to solve the challenge against the anti scrapping protection

The ASP made too much time to solve or respond

Despite our effort, we were unable to solve the captcha. It can happened sporadically, please retry

The response given by the upstream after challenge resolution is not expected. Our team has been alerted

Webhook Errors

Given webhook is disabled, please check out your webhook configuration for the current project / env

We were not able to contact your endpoint

You reach the maximum concurrency limit

Maximum retry exceeded on your webhook

Unable to find the given webhook for the current project / env

You reach the limit of scheduled webhook - You must wait pending webhook are processed

Session Errors

Concurrent access to the session has been tried. If your spider run on distributed architecture, the same session name is currently used by another scrape

For complete details on each inherited error, see the Web Scraping API Error Reference.

HTTP Status Codes

Status Code Description
200 OK Request successful
201 Created Crawler job created successfully
400 Bad Request Invalid parameters or configuration
401 Unauthorized Invalid or missing API key
403 Forbidden API key doesn't have permission for this operation
404 Not Found Crawler job UUID not found
422 Request Failed Request was valid but execution failed
429 Too Many Requests Rate limit or concurrency limit exceeded
500 Server Error Internal server error
504 Timeout Request timed out

Error Response Format

All error responses include detailed information in a consistent format:

Error response headers:

  • X-Scrapfly-Error-Code - Machine-readable error code
  • X-Scrapfly-Error-Message - Human-readable error description
  • X-Scrapfly-Error-Retryable - Whether the operation can be retried

Summary