Este guia se baseia em verificações reais na API atual do CometAPI. Verificamos diretamente falhas de
400, 401 e de caminho/base URL. Não reproduzimos 413, 429, 500, 503, 504 ou 524 em testes limitados, portanto a orientação para esses status é intencionalmente conservadora.Triagem Rápida
| Status | O que normalmente significa | Retry? | Primeira ação |
|---|---|---|---|
400 | A validação da requisição falhou antes de ela ser roteada com sucesso. | 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. |
| Erro de caminho | Base URL incorreta ou caminho de endpoint incorreto. No Comet, isso pode aparecer como um redirecionamento 301 ou HTML, e 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, 503, 504, 524 | Falha de plataforma ou da classe timeout. | Sim | Tente novamente com backoff e mantenha o request id. |
Envelope de Erro
O envelope de erro JSON atual retornado pelo CometAPI se parece com isto:request id dentro de error.message. Salve esse valor quando precisar de suporte.
400 Bad Request
O que observamos na API real quando model foi omitido:
400 normalmente significa que o corpo da requisição falhou na validação antes que a plataforma pudesse roteá-la para o provedor de model.
Causas comuns:
- Campos obrigatórios ausentes, como
modeloumessages - Formato JSON inválido
- Envio de um campo com o tipo errado
- Reutilização de parâmetros específicos de provedor que o endpoint selecionado não aceita
- Comece com uma requisição mínima sabidamente válida.
- Adicione os campos opcionais de volta um por um.
- Compare o corpo da requisição com o schema do endpoint na referência da API.
your-model-id por qualquer ID de model atual da página de Models do CometAPI.
401 Invalid Token
O que observamos na API real com uma chave inválida:
- O cabeçalho deve ser exatamente
Authorization: Bearer <COMETAPI_KEY>. - Certifique-se de que seu app não esteja carregando uma chave antiga de
.env, do histórico do shell ou de um armazenamento de secrets implantado. - Se uma chave falhar e outra funcionar na mesma requisição, trate isso como um problema de token, não de endpoint.
403 Forbidden
Não reproduzimos um 403 estável em testes limitados, portanto evite tratar um único modelo antigo de mensagem como se explicasse toda a situação.
Na documentação atual do Comet, 403 é mais frequentemente discutido como uma destas situações:
- A requisição é bloqueada por uma regra do lado da plataforma, como filtragem por 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 contra um model sabidamente funcional.
- Remova campos avançados e parâmetros específicos do provider, 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 Caminho Errado
Esta é a área em que a página antiga estava menos precisa. Em verificações ao vivo contra os endpoints atuais do Comet:- Enviar uma requisição para
https://api.cometapi.com/chat/completionsretornou um redirecionamento301parahttps://www.cometapi.com/chat/completions - Enviar uma requisição para uma rota de API falsa, como
https://api.cometapi.com/v1/not-a-real-endpoint, também retornou um redirecionamento301parahttps://www.cometapi.com/v1/not-a-real-endpoint
- Um redirecionamento
- Uma resposta HTML não JSON se o 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 caminho do endpoint corresponde exatamente ao da documentação.
- Desative o seguimento automático de redirecionamentos ao depurar problemas de caminho.
413 Request Entity Too Large
Não reproduzimos 413 em um teste limitado, mesmo com um corpo de requisição JSON superdimensionado de 8 MiB, portanto a explicação antiga de que o prompt era longo demais era restrita demais.
Se você realmente encontrar 413, trate primeiro como um problema de tamanho da requisição. Suspeitos comuns são:
- Payloads base64 grandes
- Imagens ou áudio superdimensionados incorporados inline
- Corpos multipart ou JSON muito grandes
- Reduza ou comprima o conteúdo anexado.
- Divida trabalhos grandes em requisições menores.
- Não suponha que o tamanho do texto simples seja a única causa.
429 Too Many Requests
Não reproduzimos 429 durante uma sondagem limitada de concorrência com 24 requisições paralelas GET /v1/models, então o limite exato claramente depende da rota, do model e do estado atual da plataforma.
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 que você possa ver qual rota e model estão saturando primeiro.
500, 503, 504, E 524
Não reproduzimos esses status em testes limitados. Eles devem ser documentados como falhas do lado do servidor ou da classe de timeout, não como erros do usuário.
Orientação prática:
500: falha interna da plataforma ou do lado do provider503: rota ou serviço do provider temporariamente indisponível504e524: falhas da classe de timeout entre a plataforma, a edge ou o serviço do provider
- Tente novamente com backoff.
- Guarde o
request id, o endpoint, o model e o 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
- Nome do model
- JSON do corpo da requisição sanitizado (este é o item mais útil 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 model ou outro token
- Nomes dos campos e valores de texto que você enviou junto com o arquivo
- Nome do arquivo, tipo de arquivo e tamanho aproximado do arquivo
- Se o arquivo foi enviado diretamente, referenciado por URL ou incorporado como base64