Erros e novas tentativas
O envelope de erro, a lista completa de respostas e o que fazer em cada uma.
Envelope
{ "message": "MISSING_CLIENT_ID", "details": [] }
message identifica o erro, e details normalmente é vazio. Quando um fluxo recusa uma requisição, por exemplo por uma imagem inválida, a resposta mantém esse envelope com o motivo em message e details. Veja Recusas.
Referência
| Status | message | Endpoint | Tentar de novo? |
|---|---|---|---|
| 400 | INVALID_REQUEST | create | Não. Corrija a requisição |
| 400 | REQUEST_TOO_LARGE | create | Não. Corpo acima de 2 MiB |
| 400 | MISSING_<FIELD> / INVALID_<FIELD> | create | Não. <FIELD> é o campo em snake case maiúsculo, por exemplo MISSING_CREDENTIAL_VALUE |
| 401 | Vazio ("") | create, selfie | Não. A Unico recusou a chave de acesso. Verifique HUMAN_API_ACCESS_KEY |
| 409 | CORRELATION_ID_ALREADY_USED | create | Não. Outro processo tem esse correlationId. Use um novo |
| 422 | ATTRIBUTE_TYPE_NOT_SUPPORTED | create | Não. Use um código do catálogo |
| 4xx | O message do fluxo | create | Não. O processo é armazenado como falho |
| 404 | PROCESS_NOT_FOUND | get, selfie | Não |
| 404 | SELFIE_NOT_FOUND | selfie | Não. O processo não tem selfie disponível |
| 4xx | O message da recusa | selfie | Não |
| 503 | DATABASE_UNAVAILABLE | todos | Create: veja abaixo. Get e selfie: sim |
| 502 | UPSTREAM_UNAVAILABLE | todos | Create: veja abaixo. Get e selfie: sim |
| 500 | INTERNAL | todos | Create: veja abaixo |
Repetindo uma criação
Toda criação aceita inicia um novo processo com um novo id, e cada correlationId só pode ser usado uma vez: um já utilizado, por um processo em qualquer estado, é recusado com 409 CORRELATION_ID_ALREADY_USED.
- 400, 409, 422 e outras recusas: corrija a requisição antes de enviá-la novamente.
- 503
DATABASE_UNAVAILABLE: nada foi armazenado nem processado. Tente de novo com o mesmocorrelationId. - 502 e 500: a requisição não foi confirmada. Não tente de novo automaticamente. Para tentar outra vez, envie uma nova criação com um novo
correlationId.
Abordagem recomendada para o seu back-end:
- Registre cada tentativa antes de chamar o Human Plugin, indexada pelo seu
correlationId. - Em
502ou500, decida pela sua regra de negócio se deve iniciar uma nova tentativa. - Mantenha as tentativas relacionadas ligadas nos seus registros.
Repetindo uma leitura
GET, de um processo ou da sua selfie, é seguro de repetir. Use backoff e pare em 404.
Limites de taxa
O Human Plugin não tem limitador de taxa embutido. Aplique limites no seu gateway, se precisar.