> ## Documentation Index
> Fetch the complete documentation index at: https://docs.runpulse.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Errors

> Every V2 error is an RFC 9457 problem: its members, and every code.

Every failed request answers one problem ([RFC 9457](https://www.rfc-editor.org/rfc/rfc9457)), and so does a failed job's `error`. Branch on `code`, or on the HTTP `status` for a code you don't know; `retryable` says whether sending the same request again may succeed. A code's prefix (`FILE_`, `PAYMENT_`) is not a category: compare the whole code.

```json theme={null}
{
  "type": "https://docs.runpulse.com/errors/credentials-invalid",
  "title": "No valid credentials",
  "status": 401,
  "instance": "urn:pulse:request:req-6f1c2a9e-3b7d-4c55-9a8e-2d4f0b1c7e93",
  "code": "CREDENTIALS_INVALID",
  "request_id": "req-6f1c2a9e-3b7d-4c55-9a8e-2d4f0b1c7e93",
  "retryable": false
}
```

## Members

| Member | Meaning |
| - | - |
| `type` | This code's page: what it means and what to do. |
| `title` | A short summary of the code, the same for every occurrence. |
| `status` | The HTTP status the code answers with. |
| `detail` | What happened this time. |
| `instance` | This occurrence: the request's URN, `urn:pulse:request:<id>`. |
| `code` | The stable error code, e.g. `REQUEST_INVALID`. Branch on it. |
| `request_id` | The request that failed, as `X-Request-Id` named it; for a failed job, the request that created it. Quote it to support. |
| `retryable` | Whether the same request may succeed if sent again. |
| `errors` | Each refused part of the request. |
| `retry_after` | Seconds to wait before retrying, as `Retry-After` says. Only where a code adds it. |
| `resource` | What wasn't found: `job`, `batch`, `webhook`, `config`, … Only where a code adds it. |
| `reason` | The cause within the code. Only where a code adds it. |
| `parse_id` | The parse the request recorded. Only where a code adds it. |
| `extract_id` | The extraction it recorded. Only where a code adds it. |
| `split_id` | The split it recorded. Only where a code adds it. |
| `classify_id` | The classification it recorded. Only where a code adds it. |
| `tables_id` | The tables job it recorded. Only where a code adds it. |
| `charts_id` | The charts job it recorded. Only where a code adds it. |
| `pipeline_id` | The pipeline it recorded. Only where a code adds it. |
| `batch_id` | The batch it recorded. Only where a code adds it. |
| `filename` | The file refused. Only where a code adds it. |
| `declared_type` | The type its name declared. Only where a code adds it. |
| `detected` | The type its contents are. Only where a code adds it. |
| `supported_types` | The types accepted. Only where a code adds it. |
| `supported` | The values accepted. Only where a code adds it. |
| `max_size_mb` | The largest size accepted. Only where a code adds it. |
| `file_size_mb` | The file's size. Only where a code adds it. |
| `plan_name` | Your organization's plan. Only where a code adds it. |
| `pages_used` | Pages used this period. Only where a code adds it. |
| `page_allowance` | Pages the plan allows. Only where a code adds it. |
| `upgrade_url` | Where to change your plan. Only where a code adds it. |
| `action_required` | What to do to continue. Only where a code adds it. |
| `billing_info` | Your organization's billing state, as the gate read it. Only where a code adds it. |

## Formats

An error answers `application/problem+json`, or `application/json` when `Accept` names it and not problem+json at the same or a higher q-value; `text/markdown` listed first gets the same problem as Markdown. Every response carries `X-Request-Id`, the problem's `request_id`: quote it to support.

## Codes

| Code | Status | Title | Retryable |
| - | - | - | - |
| [`CREDENTIALS_INVALID`](https://docs.runpulse.com/errors/credentials-invalid) | `401` | No valid credentials | No |
| [`API_KEY_INACTIVE`](https://docs.runpulse.com/errors/api-key-inactive) | `401` | API key is inactive | No |
| [`PERMISSION_DENIED`](https://docs.runpulse.com/errors/permission-denied) | `403` | Permission denied | No |
| [`REQUEST_INVALID`](https://docs.runpulse.com/errors/request-invalid) | `400` | Invalid request | No |
| [`UNSUPPORTED_VERSION`](https://docs.runpulse.com/errors/unsupported-version) | `400` | Unsupported API version | No |
| [`PAGE_RANGE_INVALID`](https://docs.runpulse.com/errors/page-range-invalid) | `400` | Invalid page range | No |
| [`RESOURCE_UNUSABLE`](https://docs.runpulse.com/errors/resource-unusable) | `400` | Resource can't be used | No |
| [`FIELD_TOO_LARGE`](https://docs.runpulse.com/errors/field-too-large) | `413` | Form field too large | No |
| [`FILE_TYPE_UNSUPPORTED`](https://docs.runpulse.com/errors/file-type-unsupported) | `415` | Unsupported file type | No |
| [`FILE_TOO_LARGE`](https://docs.runpulse.com/errors/file-too-large) | `413` | File too large | No |
| [`FILE_CORRUPT`](https://docs.runpulse.com/errors/file-corrupt) | `422` | File corrupted | No |
| [`DOCUMENT_UNPROCESSABLE`](https://docs.runpulse.com/errors/document-unprocessable) | `422` | Document can't be processed | No |
| [`FILE_EMPTY`](https://docs.runpulse.com/errors/file-empty) | `422` | Empty file | No |
| [`FILE_DOWNLOAD_FAILED`](https://docs.runpulse.com/errors/file-download-failed) | `422` | File couldn't be downloaded | No |
| [`FILE_DOWNLOAD_TIMEOUT`](https://docs.runpulse.com/errors/file-download-timeout) | `504` | File download timed out | Yes |
| [`FILE_URL_INVALID`](https://docs.runpulse.com/errors/file-url-invalid) | `400` | Invalid file URL | No |
| [`FILE_UNSAFE`](https://docs.runpulse.com/errors/file-unsafe) | `422` | Unsafe PDF content | No |
| [`TRIAL_EXPIRED`](https://docs.runpulse.com/errors/trial-expired) | `402` | Trial expired | No |
| [`CREDIT_LIMIT_EXCEEDED`](https://docs.runpulse.com/errors/credit-limit-exceeded) | `402` | Credit limit exceeded | No |
| [`PAYMENT_REQUIRED`](https://docs.runpulse.com/errors/payment-required) | `402` | Payment required | No |
| [`PLAN_LIMIT_REACHED`](https://docs.runpulse.com/errors/plan-limit-reached) | `402` | Plan limit reached | No |
| [`PLAN_UPGRADE_REQUIRED`](https://docs.runpulse.com/errors/plan-upgrade-required) | `402` | Plan upgrade required | No |
| [`ACCOUNT_SUSPENDED`](https://docs.runpulse.com/errors/account-suspended) | `403` | Account suspended | No |
| [`PAYMENT_FAILED`](https://docs.runpulse.com/errors/payment-failed) | `402` | Payment failed | No |
| [`PAYMENT_AUTHENTICATION_REQUIRED`](https://docs.runpulse.com/errors/payment-authentication-required) | `402` | Payment requires authentication | No |
| [`SUBSCRIPTION_CANCELED`](https://docs.runpulse.com/errors/subscription-canceled) | `402` | Subscription canceled | No |
| [`SUBSCRIPTION_PAST_DUE`](https://docs.runpulse.com/errors/subscription-past-due) | `402` | Subscription past due | No |
| [`PROCESSING_FAILED`](https://docs.runpulse.com/errors/processing-failed) | `500` | Document processing failed | Yes |
| [`PROCESSING_TIMEOUT`](https://docs.runpulse.com/errors/processing-timeout) | `504` | Processing timed out | Yes |
| [`RESOURCE_NOT_FOUND`](https://docs.runpulse.com/errors/resource-not-found) | `404` | Not found | No |
| [`ROUTE_NOT_FOUND`](https://docs.runpulse.com/errors/route-not-found) | `404` | Route not found | No |
| [`JOB_ALREADY_ENDED`](https://docs.runpulse.com/errors/job-already-ended) | `409` | Job already ended | No |
| [`JOB_NOT_FINISHED`](https://docs.runpulse.com/errors/job-not-finished) | `409` | Job still processing | Yes |
| [`RESULT_ALREADY_FETCHED`](https://docs.runpulse.com/errors/result-already-fetched) | `410` | Result already fetched | No |
| [`RESULT_EXPIRED`](https://docs.runpulse.com/errors/result-expired) | `410` | Result no longer available | No |
| [`JOB_CANCELED`](https://docs.runpulse.com/errors/job-canceled) | `410` | Job canceled | No |
| [`WEBHOOK_LIMIT_REACHED`](https://docs.runpulse.com/errors/webhook-limit-reached) | `422` | Webhook limit reached | No |
| [`RATE_LIMIT_EXCEEDED`](https://docs.runpulse.com/errors/rate-limit-exceeded) | `429` | Rate limit exceeded | Yes |
| [`CAPACITY_EXCEEDED`](https://docs.runpulse.com/errors/capacity-exceeded) | `503` | Pulse is at capacity | Yes |
| [`SERVICE_UNAVAILABLE`](https://docs.runpulse.com/errors/service-unavailable) | `503` | Service unavailable | Yes |
| [`SERVER_ERROR`](https://docs.runpulse.com/errors/server-error) | `500` | Internal server error | Yes |
| [`JOB_UNREADABLE`](https://docs.runpulse.com/errors/job-unreadable) | `500` | Job can't be read | No |
| [`METHOD_NOT_ALLOWED`](https://docs.runpulse.com/errors/method-not-allowed) | `405` | Method not allowed | No |
| [`LICENSE_INVALID`](https://docs.runpulse.com/errors/license-invalid) | `503` | License invalid or expired | No |
| [`LICENSE_NOT_ACTIVATED`](https://docs.runpulse.com/errors/license-not-activated) | `503` | Deployment not activated | No |

## From API version 1

| Version 1 | Version 2 |
| - | - |
| `AUTH_001` | [`CREDENTIALS_INVALID`](https://docs.runpulse.com/errors/credentials-invalid) |
| `AUTH_002` | [`CREDENTIALS_INVALID`](https://docs.runpulse.com/errors/credentials-invalid) |
| `AUTH_003` | [`CREDENTIALS_INVALID`](https://docs.runpulse.com/errors/credentials-invalid) |
| `AUTH_004` | [`PERMISSION_DENIED`](https://docs.runpulse.com/errors/permission-denied) |
| `AUTH_005` | [`CREDENTIALS_INVALID`](https://docs.runpulse.com/errors/credentials-invalid) |
| `AUTH_008` | [`API_KEY_INACTIVE`](https://docs.runpulse.com/errors/api-key-inactive) |
| `BILLING_001` | [`TRIAL_EXPIRED`](https://docs.runpulse.com/errors/trial-expired) |
| `BILLING_002` | [`CREDIT_LIMIT_EXCEEDED`](https://docs.runpulse.com/errors/credit-limit-exceeded) |
| `BILLING_003` | [`PAYMENT_REQUIRED`](https://docs.runpulse.com/errors/payment-required) |
| `BILLING_004` | [`PLAN_LIMIT_REACHED`](https://docs.runpulse.com/errors/plan-limit-reached) |
| `BILLING_006` | [`ACCOUNT_SUSPENDED`](https://docs.runpulse.com/errors/account-suspended) |
| `BILLING_007` | [`PAYMENT_FAILED`](https://docs.runpulse.com/errors/payment-failed) |
| `BILLING_008` | [`PAYMENT_AUTHENTICATION_REQUIRED`](https://docs.runpulse.com/errors/payment-authentication-required) |
| `BILLING_009` | [`SUBSCRIPTION_CANCELED`](https://docs.runpulse.com/errors/subscription-canceled) |
| `BILLING_010` | [`SUBSCRIPTION_PAST_DUE`](https://docs.runpulse.com/errors/subscription-past-due) |
| `BILLING_012` | [`PLAN_LIMIT_REACHED`](https://docs.runpulse.com/errors/plan-limit-reached) |
| `BILLING_013` | [`PLAN_UPGRADE_REQUIRED`](https://docs.runpulse.com/errors/plan-upgrade-required) |
| `EXPIRED` | [`RESULT_EXPIRED`](https://docs.runpulse.com/errors/result-expired) |
| `FILE_001` | [`FILE_TYPE_UNSUPPORTED`](https://docs.runpulse.com/errors/file-type-unsupported) |
| `FILE_002` | [`FILE_TOO_LARGE`](https://docs.runpulse.com/errors/file-too-large) |
| `FILE_003` | [`FILE_CORRUPT`](https://docs.runpulse.com/errors/file-corrupt) |
| `FILE_004` | [`FILE_EMPTY`](https://docs.runpulse.com/errors/file-empty) |
| `FILE_005` | [`FILE_DOWNLOAD_FAILED`](https://docs.runpulse.com/errors/file-download-failed) |
| `FILE_006` | [`FILE_DOWNLOAD_TIMEOUT`](https://docs.runpulse.com/errors/file-download-timeout) |
| `FILE_007` | [`FILE_URL_INVALID`](https://docs.runpulse.com/errors/file-url-invalid) |
| `FILE_008` | [`FILE_UNSAFE`](https://docs.runpulse.com/errors/file-unsafe) |
| `GENERAL_001` | [`SERVER_ERROR`](https://docs.runpulse.com/errors/server-error) |
| `GENERAL_002` | [`SERVICE_UNAVAILABLE`](https://docs.runpulse.com/errors/service-unavailable) |
| `GENERAL_003` | [`PROCESSING_TIMEOUT`](https://docs.runpulse.com/errors/processing-timeout) |
| `GENERAL_004` | [`RATE_LIMIT_EXCEEDED`](https://docs.runpulse.com/errors/rate-limit-exceeded) |
| `GENERAL_007` | [`METHOD_NOT_ALLOWED`](https://docs.runpulse.com/errors/method-not-allowed) |
| `GONE` | [`RESULT_EXPIRED`](https://docs.runpulse.com/errors/result-expired) |
| `INVALID_REQUEST` | [`REQUEST_INVALID`](https://docs.runpulse.com/errors/request-invalid) |
| `JOB_001` | [`RESOURCE_NOT_FOUND`](https://docs.runpulse.com/errors/resource-not-found) |
| `JOB_002` | [`JOB_ALREADY_ENDED`](https://docs.runpulse.com/errors/job-already-ended) |
| `JOB_003` | [`RESULT_EXPIRED`](https://docs.runpulse.com/errors/result-expired) |
| `JOB_004` | [`JOB_NOT_FINISHED`](https://docs.runpulse.com/errors/job-not-finished) |
| `JOB_005` | [`PROCESSING_FAILED`](https://docs.runpulse.com/errors/processing-failed) |
| `LICENSE_001` | [`LICENSE_INVALID`](https://docs.runpulse.com/errors/license-invalid) |
| `LICENSE_002` | [`LICENSE_NOT_ACTIVATED`](https://docs.runpulse.com/errors/license-not-activated) |
| `NOT_FOUND` | [`RESOURCE_NOT_FOUND`](https://docs.runpulse.com/errors/resource-not-found) |
| `PROC_001` | [`PROCESSING_FAILED`](https://docs.runpulse.com/errors/processing-failed) |
| `PROC_002` | [`PROCESSING_TIMEOUT`](https://docs.runpulse.com/errors/processing-timeout) |
| `PROC_003` | [`SERVICE_UNAVAILABLE`](https://docs.runpulse.com/errors/service-unavailable) |
| `PROC_004` | [`CAPACITY_EXCEEDED`](https://docs.runpulse.com/errors/capacity-exceeded) |
| `PROC_005` | [`PROCESSING_FAILED`](https://docs.runpulse.com/errors/processing-failed) |
| `RATE_001` | [`RATE_LIMIT_EXCEEDED`](https://docs.runpulse.com/errors/rate-limit-exceeded) |
| `REQ_001` | [`REQUEST_INVALID`](https://docs.runpulse.com/errors/request-invalid) |
| `REQ_002` | [`REQUEST_INVALID`](https://docs.runpulse.com/errors/request-invalid) |
| `REQ_003` | [`REQUEST_INVALID`](https://docs.runpulse.com/errors/request-invalid) |
| `REQ_004` | [`REQUEST_INVALID`](https://docs.runpulse.com/errors/request-invalid) |
| `REQ_005` | [`REQUEST_INVALID`](https://docs.runpulse.com/errors/request-invalid) |
| `REQ_006` | [`PAGE_RANGE_INVALID`](https://docs.runpulse.com/errors/page-range-invalid) |
| `REQ_007` | [`FIELD_TOO_LARGE`](https://docs.runpulse.com/errors/field-too-large) |
| `SCHEMA_001` | [`REQUEST_INVALID`](https://docs.runpulse.com/errors/request-invalid) |
| `STORAGE_001` | [`SERVER_ERROR`](https://docs.runpulse.com/errors/server-error) |
| `STORAGE_002` | [`RESOURCE_NOT_FOUND`](https://docs.runpulse.com/errors/resource-not-found) |
| `STORAGE_003` | [`SERVICE_UNAVAILABLE`](https://docs.runpulse.com/errors/service-unavailable) |
| `STORAGE_005` | [`RESULT_EXPIRED`](https://docs.runpulse.com/errors/result-expired) |
| `WEBHOOK_001` | [`WEBHOOK_LIMIT_REACHED`](https://docs.runpulse.com/errors/webhook-limit-reached) |
| `AUTH_006` | No version 2 code |
| `AUTH_007` | No version 2 code |
| `BATCH_001` | No version 2 code |
| `BILLING_005` | No version 2 code |
| `BILLING_011` | No version 2 code |
| `GENERAL_005` | No version 2 code |
| `PIPELINE_001` | No version 2 code |
| `PIPELINE_002` | No version 2 code |
| `PIPELINE_003` | No version 2 code |
| `PIPELINE_004` | No version 2 code |
| `PIPELINE_005` | No version 2 code |
| `PIPELINE_006` | No version 2 code |
| `PIPELINE_007` | No version 2 code |
| `SCHEMA_002` | No version 2 code |
| `SCHEMA_003` | No version 2 code |
| `SCHEMA_004` | No version 2 code |
| `SCHEMA_005` | No version 2 code |
| `STORAGE_004` | No version 2 code |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.