---
title: Erros e novas tentativas
description: Todas as respostas de erro do Human Plugin, quais são seguras para tentar de novo e como repetir uma criação.
canonical: https://developer.unico.io/pt-BR/human-plugin/api-reference/errors-and-retries
locale: pt-BR
generated_by: markdown-export
---

# Erros e novas tentativas

O envelope de erro, a lista completa de respostas e o que fazer em cada uma.

## Envelope

```json
{ "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](/pt-BR/human-plugin/api-reference/create-process#flow-refusals).

## 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 mesmo `correlationId`.
- **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:

1. Registre cada tentativa antes de chamar o Human Plugin, indexada pelo seu `correlationId`.
2. Em `502` ou `500`, decida pela sua regra de negócio se deve iniciar uma nova tentativa.
3. 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.