O tratamento de erros no CometAPI fica mais fácil quando você separa problemas no formato da requisição, problemas de autenticação, erros de path e falhas de plataforma que permitem retry. Use a combinação de status HTTP,Documentation Index
Fetch the complete documentation index at: https://apidoc.cometapi.com/llms.txt
Use this file to discover all available pages before exploring further.
error.code e error.message para decidir se deve corrigir a requisição ou tentar novamente.
Triagem rápida
| Status | O que geralmente significa | Tentar novamente? | Primeira ação |
|---|---|---|---|
400 | A validação da requisição falhou antes de ela ser processada normalmente. | Não | Valide model, messages, o formato do JSON e os tipos dos campos. |
401 | A chave de API está ausente, malformada ou inválida. | Não | Verifique Authorization: Bearer <COMETAPI_KEY>. |
403 | O acesso foi bloqueado ou a requisição atual não foi permitida. | Geralmente não | Tente novamente com uma requisição sabidamente válida e remova primeiro os campos específicos do model. |
| Path mistake | Base URL incorreta ou path de endpoint incorreto. No Comet, isso pode aparecer como um redirecionamento 301 ou HTML, não como um 404 JSON limpo. | Não | Use https://api.cometapi.com/v1 exatamente e desative o acompanhamento automático de redirecionamentos durante a depuração. |
429 | Limitação de taxa ou saturação temporária. | Sim | Use exponential backoff com jitter. |
500 with error.code: invalid_request | Uma requisição malformada apareceu por meio de uma resposta com status de servidor. | Não | Corrija o corpo da requisição antes de tentar novamente. |
500, 503, 504, 524 | Falha de plataforma, provedor ou da classe de timeout. | Sim | Tente novamente com backoff e mantenha o request id. |
Envelope de erro
Muitas falhas do CometAPI usam um corpo de erro como este:code vazio. Quando o status é 500, trate error.code e error.message como o sinal decisivo.
400 Bad Request
Um 400 geralmente significa que o corpo da requisição falhou na validação antes que a requisição pudesse ser processada normalmente.
Causas comuns:
- Campos obrigatórios ausentes, como
model - Formato de JSON inválido
- Envio de um campo com o tipo errado
- Reutilização de parâmetros específicos do provedor que o endpoint selecionado não aceita
your-model-id por qualquer model ID atual da página de Models do CometAPI.
Não presuma que toda requisição de chat malformada retorna 400. Campos obrigatórios ausentes no chat, como messages, também podem aparecer como 500 com error.code: invalid_request.
500 Internal Server Error
A maioria das respostas 500 indica uma falha de plataforma ou do provedor. Para Chat Completions, algumas requisições malformadas também podem aparecer como 500 enquanto ainda carregam error.code: invalid_request.
Um exemplo é uma requisição que omite messages:
500 tiver error.code: invalid_request, trate-a como um problema na requisição:
- Corrija o corpo da requisição.
- Compare o payload com o schema do endpoint.
- Tente novamente somente após corrigir o payload.
500 não apontar para uma requisição inválida, mantenha o request id e use backoff.
401 Invalid Token
Uma falha de token normalmente se parece com isto:
- O header deve ser exatamente
Authorization: Bearer <COMETAPI_KEY>. - Certifique-se de que sua aplicação não está carregando uma chave antiga de
.env, histórico do shell ou de um secret store implantado. - Se uma chave falha e outra funciona na mesma requisição, trate isso como um problema de token, não como um problema de endpoint.
403 Forbidden
Na maioria das vezes, 403 é uma destas situações:
- A requisição é bloqueada por uma regra do lado da plataforma, como filtragem WAF
- O token ou a rota não têm permissão para usar o model solicitado ou o formato da requisição
- O model escolhido rejeita um dos parâmetros avançados que você enviou
- Tente novamente com uma requisição de texto bem simples em um model sabidamente funcional.
- Remova campos avançados e parâmetros específicos do provedor, depois adicione-os de volta gradualmente.
- Se a resposta incluir um request id, guarde-o antes de entrar em contato com o suporte.
URL base errada ou path errado
Na Comet, um erro de path pode aparecer como:- Um redirecionamento
- Uma resposta HTML não JSON se seu cliente seguir redirecionamentos
- Um erro de parsing dentro do seu SDK
- Uma requisição que nunca chega de forma limpa à camada da API
- Confirme que a URL base inclui
/v1. - Confirme que o path do endpoint corresponde exatamente ao da documentação.
- Desative o seguimento automático de redirecionamentos ao depurar problemas de path.
413 Request Entity Too Large
Se você vir 413, trate isso primeiro como um problema de tamanho da requisição. Suspeitos comuns são:
- Payloads grandes em base64
- Imagens ou áudios grandes incorporados inline
- Corpos multipart ou JSON muito grandes
- Reduza ou comprima o conteúdo anexado.
- Divida trabalhos grandes em requisições menores.
- Não presuma que o comprimento de texto simples seja a única causa.
429 Too Many Requests
Trate 429 como passível de nova tentativa:
- Use exponential backoff com jitter.
- Reduza a concorrência em rajada.
- Mantenha o logging de requisições ativado para ver qual rota e model estão saturando primeiro.
503, 504, and 524
Esses status são falhas do lado do servidor ou da classe de timeout.
Orientação prática:
503: rota ou serviço do provedor temporariamente indisponível504e524: falhas da classe de timeout entre a plataforma, a edge ou o serviço do provedor
- Tente novamente com backoff.
- Guarde o
request id, endpoint, model e timestamp. - Se a mesma falha se repetir em várias tentativas, entre em contato com o suporte com esse contexto.
Antes de entrar em contato com o suporte
Capture estes detalhes primeiro:- Método HTTP
- Caminho do endpoint
- ID do modelo
- JSON do corpo da requisição sanitizado (este é o item mais útil, de longe, para a maioria das chamadas de API)
- Parâmetros de query, se a requisição com falha os utilizou
- Corpo da resposta exato, se o seu cliente o capturou
- Status HTTP completo
- O
error.messageexato - Qualquer
request id - Timestamp aproximado
- Se a mesma requisição funciona com outro modelo ou outro token
- Nomes dos campos e valores de texto que você enviou junto com o arquivo
- Nome do arquivo, tipo do arquivo e tamanho aproximado do arquivo
- Se o arquivo foi enviado diretamente, referenciado por URL ou incorporado como base64