Канонические коды ошибок для API gRPC.
Иногда может применяться несколько кодов ошибок. Службы должны возвращать наиболее конкретный применимый код ошибки. Например, предпочтите OUT_OF_RANGE
вместо FAILED_PRECONDITION
, если применимы оба кода. Точно так же предпочтите NOT_FOUND
или ALREADY_EXISTS
вместо FAILED_PRECONDITION
.
перечисления | |
---|---|
OK | Не ошибка; вернулся в случае успеха. Сопоставление HTTP: 200 ОК |
CANCELLED | Операция была отменена, как правило, вызывающим абонентом. Сопоставление HTTP: 499 Закрытый запрос клиента |
UNKNOWN | Неизвестная ошибка. Например, эта ошибка может возвращаться, когда значение Сопоставление HTTP: 500 Внутренняя ошибка сервера |
INVALID_ARGUMENT | Клиент указал недопустимый аргумент. Обратите внимание, что это отличается от Сопоставление HTTP: 400 неверный запрос |
DEADLINE_EXCEEDED | Срок истек до завершения операции. Для операций, которые изменяют состояние системы, эта ошибка может возвращаться, даже если операция завершилась успешно. Например, успешный ответ от сервера мог быть отложен достаточно долго для истечения крайнего срока. Сопоставление HTTP: 504 Тайм-аут шлюза |
NOT_FOUND | Некоторый запрошенный объект (например, файл или каталог) не найден. Примечание для разработчиков серверов: если запрос отклонен для целого класса пользователей, например, для постепенного развертывания функций или недокументированного списка разрешений, может использоваться Сопоставление HTTP: 404 не найдено |
ALREADY_EXISTS | Сущность, которую пытался создать клиент (например, файл или каталог), уже существует. Сопоставление HTTP: конфликт 409 |
PERMISSION_DENIED | Вызывающий объект не имеет разрешения на выполнение указанной операции. Сопоставление HTTP: 403 Запрещено |
UNAUTHENTICATED | Запрос не содержит действительных учетных данных для операции. Сопоставление HTTP: 401 Неавторизованный |
RESOURCE_EXHAUSTED | Исчерпан какой-то ресурс, возможно, квота на пользователя, или, возможно, во всей файловой системе закончилось место. Отображение HTTP: 429 слишком много запросов |
FAILED_PRECONDITION | Операция отклонена, так как система не находится в состоянии, необходимом для выполнения операции. Например, удаляемый каталог не пуст, операция rmdir применяется к некаталогу и т. д. Разработчики сервисов могут использовать следующие рекомендации для выбора между Сопоставление HTTP: 400 неверный запрос |
ABORTED | Операция была прервана, как правило, из-за проблемы параллелизма, такой как сбой проверки секвенсора или прерывание транзакции. См. рекомендации выше для выбора между Сопоставление HTTP: конфликт 409 |
OUT_OF_RANGE | Операция была предпринята за допустимым диапазоном. Например, поиск или чтение после конца файла. В отличие от Между Сопоставление HTTP: 400 неверный запрос |
UNIMPLEMENTED | Операция не реализована или не поддерживается/не включена в этой службе. Сопоставление HTTP: 501 не реализовано |
INTERNAL | Внутренние ошибки. Это означает, что некоторые инварианты, ожидаемые базовой системой, были нарушены. Этот код ошибки зарезервирован для серьезных ошибок. Сопоставление HTTP: 500 Внутренняя ошибка сервера |
UNAVAILABLE | В настоящее время услуга недоступна. Скорее всего, это временное состояние, которое можно исправить повторной попыткой с отсрочкой. Обратите внимание, что не всегда безопасно повторять неидемпотентные операции. См. рекомендации выше для выбора между Сопоставление HTTP: 503 Служба недоступна |
DATA_LOSS | Невосстановимая потеря или повреждение данных. Сопоставление HTTP: 500 Внутренняя ошибка сервера |