# Ошибки и лимиты запросов

Если клиент может устранить проблему, API KolWrite возвращает ошибку в формате
JSON со стабильным `code`.

```json
{
  "detail": {
    "code": "insufficient_scope",
    "message": "This endpoint requires the 'jobs:write' scope",
    "required_scope": "jobs:write"
  }
}
```

## Распространённые статусы

| Статус | Значение |
|---|---|
| `400` | Недопустимые входные данные или неподдерживаемое сочетание параметров |
| `401` | Токен отсутствует, недействителен, просрочен или отозван |
| `403` | Токен действителен, но не даёт доступа к необходимой области или маршруту |
| `404` | Ресурс отсутствует или недоступен владельцу токена |
| `409` | Конфликт, обычно связанный с идемпотентностью или переходом состояния |
| `422` | Структура тела запроса соответствует JSON, но не проходит проверку |
| `429` | Превышен лимит запросов или временно недоступно резервирование кредитов |
| `5xx` | Временная ошибка сервиса KolWrite |

## Рекомендации по повторным запросам

Повторяйте запросы после ответов `429`, `502`, `503` и `504`, используя
экспоненциальную задержку со случайным разбросом. При создании задач
передавайте `Idempotency-Key`, чтобы сетевые повторы не создавали дубликаты.
Не повторяйте запросы после ответов `401`, `403` и ошибок проверки, пока не
исправите токен или запрос.
