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

# Error Codes

> Complete reference of BIZ MORI API error codes

All error responses follow this format:

```json theme={null}
{
  "code": "ERROR_CODE"
}
```

The HTTP status code conveys the error category. Use the `code` field for programmatic error handling and i18n/localization.

## Authentication errors

| Error Code | HTTP Status | Description |
| - | - | - |
| `AUTH_NOT_AUTHENTICATED` | 401 | Authentication required |
| `AUTH_TOKEN_EXPIRED` | 401 | Authentication token has expired |
| `AUTH_TOKEN_INVALID` | 401 | Invalid authentication token |
| `AUTH_TOKEN_INVALID_FORMAT` | 401 | Token format is invalid |
| `AUTH_FORBIDDEN` | 403 | Insufficient permissions |

## Validation errors

| Error Code | HTTP Status | Description |
| - | - | - |
| `VALIDATION_FAILED` | 400 | Input validation failed |
| `VALIDATION_IDEMPOTENCY_KEY_INVALID` | 400 | Invalid idempotency key |
| `INVALID_PARAMETER` | 400 | Invalid parameter provided |

## Order errors

| Error Code | HTTP Status | Description |
| - | - | - |
| `ORDER_NOT_FOUND` | 404 | Order not found |
| `ORDER_NOT_PENDING` | 400 | Order is not in pending status |
| `ORDER_NOT_OWNER` | 403 | Not the order owner |
| `ORDER_EXPIRED` | 400 | Order has expired |
| `ORDER_NOT_COMPLETED` | 400 | Order is not completed |
| `ORDER_FILE_NOT_UPLOADED` | 400 | Order file has not been uploaded |
| `ORDER_ALREADY_CONFIRMED` | 400 | Order has already been confirmed |
| `ORDER_ALREADY_COMPLETED` | 400 | Order is already completed |
| `ORDER_ALREADY_FAILED` | 400 | Order has already failed |
| `ORDER_TYPE_NOT_MATCH` | 400 | Order type does not match |
| `ORDER_TYPE_CANT_DOWNLOAD` | 400 | This order type cannot be downloaded |
| `PROCESSED_FILE_NOT_FOUND` | 404 | No processed result file exists for this order |
| `ORDER_TIMEOUT` | 408 | Order processing timed out |
| `WATERMARK_V2_API_SUNSET` | 410 | v2 watermark embed and extract support has ended. Returned from 09:00 KST on October 9, 2026 (00:00 UTC). Create a new order with the v3 endpoint in the `Link` header |

### Failed order codes

When an order fails after it was created, the order details return `errors.errorCode` and `errors.errorMessage`, and the failed webhook event carries the same values. These codes describe why processing failed (for example, `WATERMARK_IMAGE_COLOR_MODE_UNSUPPORTED`). See [Failed event error codes](https://docs.contentcare.ai/webhooks.md#failed-event-error-codes) for the full list.

## Test upload errors

| Error Code | HTTP Status | Description |
| - | - | - |
| `TEST_UPLOAD_TOO_LARGE` | 413 | The test upload exceeds the 50 MiB default limit |

## Usage & plan errors

| Error Code | HTTP Status | Description |
| - | - | - |
| `USAGE_LIMIT_EXCEEDED` | 400 | Usage limit exceeded |
| `USAGE_NOT_ENOUGH` | 400 | Insufficient usage quota |
| `PLAN_NOT_FOUND` | 404 | Plan not found |

## Webhook errors

| Error Code | HTTP Status | Description |
| - | - | - |
| `WEBHOOK_NOT_FOUND` | 404 | Webhook not found |

## Rate limiting

| Error Code | HTTP Status | Description |
| - | - | - |
| `RATE_LIMIT_EXCEEDED` | 429 | Too many requests |

## Server errors

| Error Code | HTTP Status | Description |
| - | - | - |
| `SERVER_INTERNAL_ERROR` | 500 | Internal server error |


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