Главная/Справочник/Коды ошибок ENУКРРУС API-справочник (ReDoc) ↗

Коды ошибок

Каждый error.code, когда он случается и что с ним делать.

Ветвитесь по error.code. Он стабилен. message для людей и может быть переформулирован.

{ "error": { "code": "language_not_found",
             "message": "Unknown language code: 'xx-YY'",
             "details": { "language": "xx-YY" } } }

Публичный API

language_not_found — 404

Код не совпал ни с каноническим кодом, ни с алиасом, и укорачивание тоже ничего не нашло.

Делайте: залогируйте сырое значение. Это либо опечатка на стороне отправителя, либо здесь нужен алиас — см. Добавить язык. Если вы классифицируете, а не резолвите, берите /v1/normalize: он отдаёт known: false с 200.

Не делайте ретраев. Ответ не изменится, пока кто-то не отредактирует каталог.

details.language несёт присланное вами значение.

provider_not_found — 404

Ни код провайдера, ни короткое имя, ни легаси service_name не совпали.

Делайте: проверьте актуальный перечень в GET /v1/providers. Легаси-имена консоли зарегистрированы как алиасы, так что если service_name из animated-spoon не сработал — провайдера здесь действительно нет; см. Providers and Vendors.

language_unsupported — 409

Провайдер и язык существуют; пара зафиксирована как нерабочая.

409, а не 404, потому что оба названных ресурса реальны — отказано именно их комбинации, а вызывающий, вечно ретраящий тот же 404, делал бы неверный вывод.

Делайте: выберите другого провайдера для этого языка. GET /v1/languages/{code}/providers показывает, кто его возьмёт.

Info

/v1/resolve отдаёт это в теле Эндпоинт возвращает 200 с supported: false и code: null, а не бросает ошибку, так что вызывающий может залогировать пару и идти дальше без обработки исключений. Форма 409 появляется там, где неподдерживаемая пара — жёсткий сбой.

validation_error — 422

Некорректный запрос: неправильный тип, отсутствующий параметр или батч свыше 500 пар.

details.fields перечисляет каждую проблему с её расположением.

payload_too_large — 413

Тело свыше 256 КБ. Разбейте батч.

internal_error — 500

Необработанное исключение. Сообщение намеренно обобщённое: неожиданное исключение может нести DSN или строку данных, так что оно идёт в лог, а не к вам.

Делайте: один ретрай с бэкоффом, затем сообщите с X-Correlation-Id из заголовков вашего ответа.

service_unavailable — 503

От /health/ready, когда база недоступна или каталог пуст (миграции прошли, сид — нет).

Только админка

Код Статус Значение
unauthorized 401 Нет действительной сессии админа
csrf_invalid 403 Токен отсутствует или устарел — перезагрузите страницу
admin_unavailable 503 ADMIN_PASSWORD_HASH / ADMIN_SECRET_KEY не настроены
conflict 409 Алиас занят, или удаляете язык, у которого ещё есть маппинги
not_found 404 Неизвестная сущность

Далее