Перейти к основному содержимому
Ошибки и повторные попытки

Формат ошибки, полный список ответов и что делать в каждом случае.

Markdown

Формат ошибки​

{ "message": "MISSING_CLIENT_ID", "details": [] }

message идентифицирует ошибку, а details обычно пуст. Когда поток отклоняет запрос, например из-за недопустимого изображения, ответ сохраняет этот формат, а причина указывается в message и details. См. Отказы.

Справочник​

СтатусmessageЭндпоинтПовторять?
400INVALID_REQUESTcreateНет. Исправьте запрос
400REQUEST_TOO_LARGEcreateНет. Тело больше 2 MiB
400MISSING_<FIELD> / INVALID_<FIELD>createНет. <FIELD> — имя поля в верхнем регистре со змеиным написанием, например MISSING_CREDENTIAL_VALUE
401Пусто ("")create, selfieНет. Unico отклонил ключ доступа. Проверьте HUMAN_API_ACCESS_KEY
409CORRELATION_ID_ALREADY_USEDcreateНет. У другого процесса уже есть такой correlationId. Используйте новый
422ATTRIBUTE_TYPE_NOT_SUPPORTEDcreateНет. Используйте код из каталога
4xxmessage потокаcreateНет. Процесс сохраняется как завершившийся ошибкой
404PROCESS_NOT_FOUNDget, selfieНет
404SELFIE_NOT_FOUNDselfieНет. Для процесса нет доступного селфи
4xxmessage отказаselfieНет
503DATABASE_UNAVAILABLEвсеCreate: см. ниже. Get и selfie: да
502UPSTREAM_UNAVAILABLEвсеCreate: см. ниже. Get и selfie: да
500INTERNALвсеCreate: см. ниже

Повтор создания процесса​

Каждое принятое создание запускает новый процесс с новым id, а каждый correlationId можно использовать один раз: уже использованный процессом в любом состоянии отклоняется ответом 409 CORRELATION_ID_ALREADY_USED.

  • 400, 409, 422 и прочие отказы: исправьте запрос, прежде чем отправлять его снова.
  • 503 DATABASE_UNAVAILABLE: ничего не было сохранено или обработано. Повторите с тем же correlationId.
  • 502 и 500: запрос не был подтверждён. Не повторяйте автоматически. Чтобы попробовать снова, отправьте новое создание с новым correlationId.

Рекомендуемый подход для вашего бэкенда:

  1. Фиксируйте каждую попытку до вызова Human Plugin, используя её correlationId как ключ.
  2. При 502 или 500 решайте по своему бизнес-правилу, начинать ли новую попытку.
  3. Сохраняйте связь между родственными попытками в своих записях.

Повтор чтения​

GET для процесса или его селфи можно безопасно повторять. Используйте экспоненциальную задержку и прекращайте при 404.

Ограничения частоты запросов​

В Human Plugin нет встроенного ограничителя частоты запросов. При необходимости задайте лимиты на вашем шлюзе.