Коды ошибок
Каждый машиночитаемый код ошибки, его HTTP-статус и что с ним делать.
Каждый не-2xx ответ несёт один из этих кодов в error.code (Errors and Conventions). Ветвитесь по коду; message — для людей и может меняться.
| Код | Статус | Значение · что делать |
|---|---|---|
INVALID_REQUEST |
400 | Некорректное тело/query: неизвестные поля, отсутствующие version/If-Match, плохой X-Admin-Actor, недопустимый id замены, disabled-запись на make-default. Исправьте запрос. |
AUTHENTICATION_REQUIRED |
401 | Отсутствующий/невалидный токен для плоскости: плохая подпись, неверные iss/aud, истёк, неканонический UUID в sub, несмапленная роль. Получите свежий токен (User Plane Tokens, Service Plane Tokens). |
FORBIDDEN |
403 | Аутентифицирован, но не разрешено: auditor на мутации, не-менеджер на org-credentials, include_removed без повышенной роли или сервисный токен без нужного scope. |
VENDOR_NOT_FOUND |
404 | Нет такого вендора в пределах вашей видимости (Vendors and Providers). |
PROVIDER_NOT_FOUND |
404 | Нет такого провайдера в пределах вашей видимости. |
CREDENTIAL_NOT_FOUND |
404 | Нет такого credential, которым владеет адресуемый scope — чужая запись отвечает так же. Не для повтора. |
CREDENTIAL_NOT_CONFIGURED |
404 | Resolve прошёл каждый допустимый уровень и не нашёл ничего. Настройте ключ или разрешите fallback. |
PROVIDER_DISABLED |
409 | Провайдер отключён/удалён в каталоге: ни новых credentials, ни resolve. |
PROVIDER_DEPRECATED_FOR_NEW_CREDENTIALS |
409 | Deprecated-провайдеры не принимают новых записей; существующие продолжают работать. Мигрируйте на замену. |
DEFAULT_CREDENTIAL_ALREADY_EXISTS |
409 | Два create с make_default побежали наперегонки за одну пару (provider, owner); проигравший получает это. Повторите раз (Defaults and Lifecycle). |
CREDENTIAL_VERSION_CONFLICT |
409 | Оптимистичная блокировка проиграна: ваша version устарела. Перечитайте, повторите. |
OWNER_TYPE_NOT_ALLOWED_FOR_PROVIDER |
409 | Политика провайдера вообще не допускает этот уровень владения. |
CREDENTIAL_SCHEMA_VALIDATION_FAILED |
422 | Секретный объект нарушает credential_schema (Provider Schemas). Указатели в details.errors, значения никогда не эхо-повторяются. |
CONFIGURATION_SCHEMA_VALIDATION_FAILED |
422 | Конфигурация нарушает configuration_schema. Та же форма. |
REQUEST_TOO_LARGE |
413 | Тело больше 64 KiB. |
RATE_LIMITED |
429 | Бюджет исчерпан; подождите Retry-After секунд. |
CREDENTIAL_DECRYPTION_FAILED |
500 | Сохранённый шифротекст не расшифровался — инцидент keyring, аудируется. Эскалируйте операторам; не повторяйте вслепую. |
INTERNAL_ERROR |
500 | Неожиданный сбой. Сообщите вместе с correlation_id. |
SERVICE_NOT_READY |
503 | Зависимость (база данных/keyring) лежит — те же факты, что у GET /health/ready. Повторите после readiness. |
NOT_FOUND / METHOD_NOT_ALLOWED / HTTP_ERROR |
404/405/* | Общие ответы HTTP-слоя для неизвестных путей и методов. |
Практический проход по важнейшим из них: сценарий cookbook 10.