# Scrapfly Documentation

## Table of Contents

### Dashboard

- [Intro](https://scrapfly.io/docs)
- [Project](https://scrapfly.io/docs/project)
- [Account](https://scrapfly.io/docs/account)
- [Workspace & Team](https://scrapfly.io/docs/workspace-and-team)
- [Billing](https://scrapfly.io/docs/billing)

### Products

#### MCP Server

- [Getting Started](https://scrapfly.io/docs/mcp/getting-started)
- [Tools & API Spec](https://scrapfly.io/docs/mcp/tools)
- [Authentication](https://scrapfly.io/docs/mcp/authentication)
- [Examples & Use Cases](https://scrapfly.io/docs/mcp/examples)
- [FAQ](https://scrapfly.io/docs/mcp/faq)
##### Integrations

- [Overview](https://scrapfly.io/docs/mcp/integrations)
- [Claude Desktop](https://scrapfly.io/docs/mcp/integrations/claude-desktop)
- [Claude Code](https://scrapfly.io/docs/mcp/integrations/claude-code)
- [ChatGPT](https://scrapfly.io/docs/mcp/integrations/chatgpt)
- [Cursor](https://scrapfly.io/docs/mcp/integrations/cursor)
- [Cline](https://scrapfly.io/docs/mcp/integrations/cline)
- [Windsurf](https://scrapfly.io/docs/mcp/integrations/windsurf)
- [Zed](https://scrapfly.io/docs/mcp/integrations/zed)
- [Roo Code](https://scrapfly.io/docs/mcp/integrations/roo-code)
- [VS Code](https://scrapfly.io/docs/mcp/integrations/vscode)
- [LangChain](https://scrapfly.io/docs/mcp/integrations/langchain)
- [LlamaIndex](https://scrapfly.io/docs/mcp/integrations/llamaindex)
- [CrewAI](https://scrapfly.io/docs/mcp/integrations/crewai)
- [OpenAI](https://scrapfly.io/docs/mcp/integrations/openai)
- [n8n](https://scrapfly.io/docs/mcp/integrations/n8n)
- [Make](https://scrapfly.io/docs/mcp/integrations/make)
- [Zapier](https://scrapfly.io/docs/mcp/integrations/zapier)
- [Vapi AI](https://scrapfly.io/docs/mcp/integrations/vapi)
- [Agent Builder](https://scrapfly.io/docs/mcp/integrations/agent-builder)
- [Custom Client](https://scrapfly.io/docs/mcp/integrations/custom-client)


#### Web Scraping API

- [Getting Started](https://scrapfly.io/docs/scrape-api/getting-started)
- [API Specification]()
- [Monitoring](https://scrapfly.io/docs/monitoring)
- [Customize Request](https://scrapfly.io/docs/scrape-api/custom)
- [Debug](https://scrapfly.io/docs/scrape-api/debug)
- [Anti Scraping Protection](https://scrapfly.io/docs/scrape-api/anti-scraping-protection)
- [Proxy](https://scrapfly.io/docs/scrape-api/proxy)
- [Proxy Mode](https://scrapfly.io/docs/scrape-api/proxy-mode)
- [Proxy Mode - Screaming Frog](https://scrapfly.io/docs/scrape-api/proxy-mode/screaming-frog)
- [Proxy Mode - Apify](https://scrapfly.io/docs/scrape-api/proxy-mode/apify)
- [(Auto) Data Extraction](https://scrapfly.io/docs/scrape-api/extraction)
- [Javascript Rendering](https://scrapfly.io/docs/scrape-api/javascript-rendering)
- [Javascript Scenario](https://scrapfly.io/docs/scrape-api/javascript-scenario)
- [SSL](https://scrapfly.io/docs/scrape-api/ssl)
- [DNS](https://scrapfly.io/docs/scrape-api/dns)
- [Cache](https://scrapfly.io/docs/scrape-api/cache)
- [Batch (Multi-URL Scraping)](https://scrapfly.io/docs/scrape-api/batch)
- [Session](https://scrapfly.io/docs/scrape-api/session)
- [Webhook](https://scrapfly.io/docs/scrape-api/webhook)
- [Schedule](https://scrapfly.io/docs/scrape-api/schedule)
- [Screenshot](https://scrapfly.io/docs/scrape-api/screenshot)
- [Errors](https://scrapfly.io/docs/scrape-api/errors)
- [Timeout](https://scrapfly.io/docs/scrape-api/understand-timeout)
- [Throttling](https://scrapfly.io/docs/throttling)
- [Troubleshoot](https://scrapfly.io/docs/scrape-api/troubleshoot)
- [Billing](https://scrapfly.io/docs/scrape-api/billing)
- [FAQ](https://scrapfly.io/docs/scrape-api/faq)

#### Crawler API

- [Getting Started](https://scrapfly.io/docs/crawler-api/getting-started)
- [API Specification]()
- [Retrieving Results](https://scrapfly.io/docs/crawler-api/results)
- [WARC Format](https://scrapfly.io/docs/crawler-api/warc-format)
- [Data Extraction](https://scrapfly.io/docs/crawler-api/extraction-rules)
- [Webhook](https://scrapfly.io/docs/crawler-api/webhook)
- [Schedule](https://scrapfly.io/docs/crawler-api/schedule)
- [Billing](https://scrapfly.io/docs/crawler-api/billing)
- [Errors](https://scrapfly.io/docs/crawler-api/errors)
- [Troubleshoot](https://scrapfly.io/docs/crawler-api/troubleshoot)
- [FAQ](https://scrapfly.io/docs/crawler-api/faq)

#### Screenshot API

- [Getting Started](https://scrapfly.io/docs/screenshot-api/getting-started)
- [API Specification]()
- [Accessibility Testing](https://scrapfly.io/docs/screenshot-api/accessibility)
- [Webhook](https://scrapfly.io/docs/screenshot-api/webhook)
- [Schedule](https://scrapfly.io/docs/screenshot-api/schedule)
- [Billing](https://scrapfly.io/docs/screenshot-api/billing)
- [Errors](https://scrapfly.io/docs/screenshot-api/errors)

#### Extraction API

- [Getting Started](https://scrapfly.io/docs/extraction-api/getting-started)
- [API Specification]()
- [Rules Template](https://scrapfly.io/docs/extraction-api/rules-and-template)
- [Saved Templates](https://scrapfly.io/docs/extraction-api/templates)
- [LLM Extraction](https://scrapfly.io/docs/extraction-api/llm-prompt)
- [AI Auto Extraction](https://scrapfly.io/docs/extraction-api/automatic-ai)
- [Webhook](https://scrapfly.io/docs/extraction-api/webhook)
- [Billing](https://scrapfly.io/docs/extraction-api/billing)
- [Errors](https://scrapfly.io/docs/extraction-api/errors)
- [FAQ](https://scrapfly.io/docs/extraction-api/faq)

#### Data API

- [Getting Started](https://scrapfly.io/docs/data-api/getting-started)

#### Proxy Saver

- [Getting Started](https://scrapfly.io/docs/proxy-saver/getting-started)
- [Fingerprints](https://scrapfly.io/docs/proxy-saver/fingerprints)
- [Optimizations](https://scrapfly.io/docs/proxy-saver/optimizations)
- [SSL Certificates](https://scrapfly.io/docs/proxy-saver/certificates)
- [Protocols](https://scrapfly.io/docs/proxy-saver/protocols)
- [Pacfile](https://scrapfly.io/docs/proxy-saver/pacfile)
- [Secure Credentials](https://scrapfly.io/docs/proxy-saver/security)
- [Billing](https://scrapfly.io/docs/proxy-saver/billing)

#### Cloud Browser API

- [Getting Started](https://scrapfly.io/docs/cloud-browser-api/getting-started)
- [Proxy & Geo-Targeting](https://scrapfly.io/docs/cloud-browser-api/proxy)
- [Unblock API](https://scrapfly.io/docs/cloud-browser-api/unblock)
- [Captcha Solver](https://scrapfly.io/docs/cloud-browser-api/captcha-solver)
- [File Downloads](https://scrapfly.io/docs/cloud-browser-api/file-downloads)
- [Session Resume](https://scrapfly.io/docs/cloud-browser-api/session-resume)
- [Human-in-the-Loop](https://scrapfly.io/docs/cloud-browser-api/human-in-the-loop)
- [Debug Mode](https://scrapfly.io/docs/cloud-browser-api/debug-mode)
- [Bring Your Own Proxy](https://scrapfly.io/docs/cloud-browser-api/bring-your-own-proxy)
- [Browser Extensions](https://scrapfly.io/docs/cloud-browser-api/extensions)
- [Native Browser MCP](https://scrapfly.io/docs/cloud-browser-api/mcp)
- [DevTools Protocol](https://scrapfly.io/docs/cloud-browser-api/cdp-reference)
##### Integrations

- [Puppeteer](https://scrapfly.io/docs/cloud-browser-api/puppeteer)
- [Playwright](https://scrapfly.io/docs/cloud-browser-api/playwright)
- [Selenium](https://scrapfly.io/docs/cloud-browser-api/selenium)
- [Vercel Agent Browser](https://scrapfly.io/docs/cloud-browser-api/agent-browser)
- [Browser Use](https://scrapfly.io/docs/cloud-browser-api/browser-use)
- [Stagehand](https://scrapfly.io/docs/cloud-browser-api/stagehand)

- [Billing](https://scrapfly.io/docs/cloud-browser-api/billing)
- [Errors](https://scrapfly.io/docs/cloud-browser-api/errors)


### Tools

- [Antibot Detector](https://scrapfly.io/docs/tools/antibot-detector)

### SDK

- [Golang](https://scrapfly.io/docs/sdk/golang)
- [Python](https://scrapfly.io/docs/sdk/python)
- [Rust](https://scrapfly.io/docs/sdk/rust)
- [TypeScript](https://scrapfly.io/docs/sdk/typescript)
- [Scrapy](https://scrapfly.io/docs/sdk/scrapy)

### Integrations

- [Getting Started](https://scrapfly.io/docs/integration/getting-started)
- [LangChain](https://scrapfly.io/docs/integration/langchain)
- [LlamaIndex](https://scrapfly.io/docs/integration/llamaindex)
- [CrewAI](https://scrapfly.io/docs/integration/crewai)
- [Zapier](https://scrapfly.io/docs/integration/zapier)
- [Make](https://scrapfly.io/docs/integration/make)
- [n8n](https://scrapfly.io/docs/integration/n8n)

### Academy

- [Overview](https://scrapfly.io/academy)
- [Web Scraping Overview](https://scrapfly.io/academy/scraping-overview)
- [Tools](https://scrapfly.io/academy/tools-overview)
- [Reverse Engineering](https://scrapfly.io/academy/reverse-engineering)
- [Static Scraping](https://scrapfly.io/academy/static-scraping)
- [HTML Parsing](https://scrapfly.io/academy/html-parsing)
- [Dynamic Scraping](https://scrapfly.io/academy/dynamic-scraping)
- [Hidden API Scraping](https://scrapfly.io/academy/hidden-api-scraping)
- [Headless Browsers](https://scrapfly.io/academy/headless-browsers)
- [Hidden Web Data](https://scrapfly.io/academy/hidden-web-data)
- [JSON Parsing](https://scrapfly.io/academy/json-parsing)
- [Data Processing](https://scrapfly.io/academy/data-processing)
- [Scaling](https://scrapfly.io/academy/scaling)
- [Walkthrough Summary](https://scrapfly.io/academy/walkthrough-summary)
- [Scraper Blocking](https://scrapfly.io/academy/scraper-blocking)
- [Proxies](https://scrapfly.io/academy/proxies)

---

# Scheduler API Errors

## Introduction

 The Scheduler API returns `ERR::SCHEDULER::*` error codes when a schedule request is rejected, throttled, or fails to dispatch. Each error has a stable code, an HTTP status, a `retryable` flag, and links to remediation steps. If you want to port these definitions into your application, retrieve the live JSON via the [/doc/errors](https://api.scrapfly.io/doc/errors) endpoint and filter by `type === "SCHEDULER"`.

## Error Response Shape

Every Scheduler API error response carries the same envelope:

 ```
{
    "code": "ERR::SCHEDULER::CONFIG_ERROR",
    "http_code": 422,
    "description": "Schedule request rejected due to invalid configuration.",
    "retryable": false,
    "type": "SCHEDULER",
    "billed": false,
    "fair_use": false,
    "links": {
        "Schedule Documentation": "https://scrapfly.io/docs/scrape-api/schedule",
        "Webhook Setup": "https://scrapfly.io/docs/scrape-api/webhook",
        "Related Error Doc": "https://scrapfly.io/docs/scheduler-api/error/ERR::SCHEDULER::CONFIG_ERROR"
    }
}

```

## Error Codes

10 error codes are defined for the Scheduler API.

####  ERR::SCHEDULER::ALREADY\_CANCELLED [ ](https://scrapfly.io/docs/scheduler-api/error/ERR::SCHEDULER::ALREADY_CANCELLED)

Schedule is already cancelled and cannot be cancelled again.

- **Retryable:** No
- **HTTP status code:** 409
- **Documentation:**
    - [Related Error Doc](https://scrapfly.io/docs/scheduler-api/error/ERR::SCHEDULER::ALREADY_CANCELLED)
    - [Schedule Documentation](https://scrapfly.io/docs/scrape-api/schedule)

---

####  ERR::SCHEDULER::BACKEND\_ERROR [ ](https://scrapfly.io/docs/scheduler-api/error/ERR::SCHEDULER::BACKEND_ERROR)

The schedule operation could not be completed. Retry the request; if it persists, contact support.

- **Retryable:** Yes
- **HTTP status code:** 502
- **Documentation:**
    - [Related Error Doc](https://scrapfly.io/docs/scheduler-api/error/ERR::SCHEDULER::BACKEND_ERROR)
    - [Schedule Documentation](https://scrapfly.io/docs/scrape-api/schedule)

---

####  ERR::SCHEDULER::CANNOT\_MODIFY [ ](https://scrapfly.io/docs/scheduler-api/error/ERR::SCHEDULER::CANNOT_MODIFY)

Only ACTIVE schedules can be modified. Resume the schedule first (POST /schedules/:id/resume) or recreate it.

- **Retryable:** No
- **HTTP status code:** 409
- **Documentation:**
    - [Related Error Doc](https://scrapfly.io/docs/scheduler-api/error/ERR::SCHEDULER::CANNOT_MODIFY)
    - [Schedule Documentation](https://scrapfly.io/docs/scrape-api/schedule)

---

####  ERR::SCHEDULER::CONCURRENCY\_BLOCKED [ ](https://scrapfly.io/docs/scheduler-api/error/ERR::SCHEDULER::CONCURRENCY_BLOCKED)

An execute-now request was blocked because the same schedule fired within the last 5 minutes. Set allow\_concurrency=true on the schedule to permit overlapping fires.

- **Retryable:** Yes
- **HTTP status code:** 409
- **Documentation:**
    - [Related Error Doc](https://scrapfly.io/docs/scheduler-api/error/ERR::SCHEDULER::CONCURRENCY_BLOCKED)
    - [Schedule Documentation](https://scrapfly.io/docs/scrape-api/schedule)

---

####  ERR::SCHEDULER::CONFIG\_ERROR [ ](https://scrapfly.io/docs/scheduler-api/error/ERR::SCHEDULER::CONFIG_ERROR)

Schedule request rejected due to invalid configuration. Common causes: missing or empty webhook\_name, webhook\_name does not match a webhook configured on the project, malformed scrape\_config / screenshot\_config / crawler\_config, or missing recurrence and scheduled\_date.

- **Retryable:** No
- **HTTP status code:** 422
- **Documentation:**
    - [Related Error Doc](https://scrapfly.io/docs/scheduler-api/error/ERR::SCHEDULER::CONFIG_ERROR)
    - [Schedule Documentation](https://scrapfly.io/docs/scrape-api/schedule)
    - [Webhook Setup](https://scrapfly.io/docs/scrape-api/webhook)

---

####  ERR::SCHEDULER::CRAWLER\_NOT\_IMPLEMENTED [ ](https://scrapfly.io/docs/scheduler-api/error/ERR::SCHEDULER::CRAWLER_NOT_IMPLEMENTED)

Crawler schedule dispatch is not yet implemented in the worker. The fire was recorded but no crawl was started.

- **Retryable:** No
- **HTTP status code:** 501
- **Documentation:**
    - [Related Error Doc](https://scrapfly.io/docs/scheduler-api/error/ERR::SCHEDULER::CRAWLER_NOT_IMPLEMENTED)
    - [Schedule Documentation](https://scrapfly.io/docs/scrape-api/schedule)

---

####  ERR::SCHEDULER::DISABLED [ ](https://scrapfly.io/docs/scheduler-api/error/ERR::SCHEDULER::DISABLED)

The targeted schedule has been disabled

- **Retryable:** No
- **HTTP status code:** 400
- **Documentation:**
    - [Related Error Doc](https://scrapfly.io/docs/scheduler-api/error/ERR::SCHEDULER::DISABLED)
    - [Schedule Documentation](https://scrapfly.io/docs/scrape-api/schedule)

---

####  ERR::SCHEDULER::NOT\_FOUND [ ](https://scrapfly.io/docs/scheduler-api/error/ERR::SCHEDULER::NOT_FOUND)

Schedule not found, or not owned by the authenticated account.

- **Retryable:** No
- **HTTP status code:** 404
- **Documentation:**
    - [Related Error Doc](https://scrapfly.io/docs/scheduler-api/error/ERR::SCHEDULER::NOT_FOUND)
    - [Schedule Documentation](https://scrapfly.io/docs/scrape-api/schedule)

---

####  ERR::SCHEDULER::QUOTA\_REACHED [ ](https://scrapfly.io/docs/scheduler-api/error/ERR::SCHEDULER::QUOTA_REACHED)

Your subscription's schedule quota is exhausted. Cancel an existing schedule or upgrade your plan to create more.

- **Retryable:** No
- **HTTP status code:** 429
- **Documentation:**
    - [Pricing](https://scrapfly.io/pricing)
    - [Related Error Doc](https://scrapfly.io/docs/scheduler-api/error/ERR::SCHEDULER::QUOTA_REACHED)
    - [Schedule Documentation](https://scrapfly.io/docs/scrape-api/schedule)

---

####  ERR::SCHEDULER::WEBHOOK\_DISABLED [ ](https://scrapfly.io/docs/scheduler-api/error/ERR::SCHEDULER::WEBHOOK_DISABLED)

Schedule fire skipped because its linked webhook is disabled. The schedule has been auto-paused; re-enable the webhook to resume it.

- **Retryable:** No
- **HTTP status code:** 409
- **Documentation:**
    - [Related Error Doc](https://scrapfly.io/docs/scheduler-api/error/ERR::SCHEDULER::WEBHOOK_DISABLED)
    - [Schedule Documentation](https://scrapfly.io/docs/scrape-api/schedule)
    - [Webhook Setup](https://scrapfly.io/docs/scrape-api/webhook)

## Suggested content

- [Schedule a Scrape](https://scrapfly.io/docs/scrape-api/schedule)
- [Webhook Setup](https://scrapfly.io/docs/scrape-api/webhook)
- [All API Errors](https://scrapfly.io/docs/scrape-api/errors)
