Обработка ошибок
Ошибки будут приходить с http_code >= 400, поэтому рекомендуется делать десериализацию json и проверку ошибок именно с таким кодом ответа.
Пример ошибки
{
  /* gRPC код ошибки. Ниже подробное описание */
  "code": 3, 
  "details": [
    /* Детали ошибки. Могут не приходить */
    {
      /* По этому @type можно уточнять ошибку в коде программы */
      "@type": "type.googleapis.com/io.devision.rpc.ServiceError",
      "kind": "ResourceAccessError",
      "reason": "ENTITY_NOT_FOUND"
    }
  ],
  /* Текст ошибки (может менятся со временем) */
  "message": "Entity not found. Alias=unknown_entity"
}Описание code
Ошибки всегда будут соответствовать этому документу https://cloud.google.com/inference/reference/rest/v1/Code?hl=ru
| Ошибка | Описание | HTTP Mapping | Code | 
|---|---|---|---|
| OK | Не ошибка, запрос успешно выполнился | HTTP Mapping: 200 OK | 0 | 
| CANCELLED | Операция была отменена | HTTP Mapping: 499 Client Closed Request | 1 | 
| NOT_FOUND | Не найдено. | HTTP Mapping: 404 Not Found | 5 | 
| INVALID_ARGUMENT | Вы передали неправильный параметр. | HTTP Mapping: 400 Bad Request | 3 | 
| DEADLINE_EXCEEDED | Не удалось выполнить операцию за разумное время | HTTP Mapping: 504 Gateway Timeout | 4 | 
| PERMISSION_DENIED | У вас нет прав на выполнение операции | HTTP Mapping: 403 Forbidden | 7 | 
| FAILED_PRECONDITION | Операция была отклонена, поскольку система не находится в состоянии, необходимом для выполнения операции. Например, удаляемый каталог не является пустым, бюджет аккаунта находится в неверном состоянии | HTTP Mapping: 400 Bad Request | 9 | 
| INTERNAL | Ошибка возникла на уровне нашей системы. Обратитесь в тех.поддержку. | HTTP Mapping: 500 Internal Server Error | 13 |