Questa guida si basa su verifiche effettuate in tempo reale sull’attuale API di CometAPI. Abbiamo verificato direttamente
400, 401 e gli errori di path/base URL. Non abbiamo riprodotto 413, 429, 500, 503, 504 o 524 in test delimitati, quindi le indicazioni per questi stati sono intenzionalmente prudenti.Triage rapido
| Status | Cosa significa di solito | Ritentare? | Prima azione |
|---|---|---|---|
400 | La validazione della richiesta non è riuscita prima che la richiesta venisse instradata correttamente. | No | Valida model, messages, la struttura JSON e i tipi dei campi. |
401 | La chiave API è mancante, malformata o non valida. | No | Controlla Authorization: Bearer <COMETAPI_KEY>. |
403 | L’accesso è stato bloccato oppure la richiesta corrente non era consentita. | Di solito no | Riprova con una richiesta sicuramente valida e rimuovi prima i campi specifici del model. |
| Path mistake | Base URL errato o path dell’endpoint errato. Su Comet questo può apparire come un reindirizzamento 301 o HTML, non come un pulito 404 JSON. | No | Usa esattamente https://api.cometapi.com/v1 e disabilita il follow automatico dei redirect durante il debugging. |
429 | Rate limiting o saturazione temporanea. | Sì | Usa exponential backoff con jitter. |
500, 503, 504, 524 | Errore della piattaforma o della classe timeout. | Sì | Riprova con backoff e conserva il request id. |
Error Envelope
L’attuale Error Envelope JSON restituito da CometAPI ha questo aspetto:request id all’interno di error.message. Salva quel valore quando hai bisogno di supporto.
400 Bad Request
Ciò che abbiamo osservato dall’API live quando model era omesso:
400 di solito significa che il body della richiesta non ha superato la validazione prima che la piattaforma potesse instradarla al provider del model.
Cause comuni:
- Campi obbligatori mancanti come
modelomessages - Struttura JSON non valida
- Invio di un campo con il tipo errato
- Riutilizzo di parametri specifici del provider che l’endpoint selezionato non accetta
- Parti da una richiesta minima sicuramente valida.
- Riaggiungi i campi opzionali uno alla volta.
- Confronta il body della richiesta con lo schema dell’endpoint nel riferimento API.
your-model-id con qualsiasi ID di model attuale dalla pagina Models di CometAPI.
401 Invalid Token
Ciò che abbiamo osservato dall’API live con una chiave non valida:
- L’header deve essere esattamente
Authorization: Bearer <COMETAPI_KEY>. - Assicurati che la tua app non stia caricando una vecchia chiave da
.env, dalla cronologia della shell o da un archivio di secret distribuito. - Se una chiave fallisce e un’altra funziona sulla stessa richiesta, trattalo come un problema di token, non come un problema dell’endpoint.
403 Forbidden
Non abbiamo riprodotto un 403 stabile in test circoscritti, quindi evita di trattare un singolo vecchio template di messaggio come se spiegasse l’intera situazione.
Nella documentazione attuale di Comet, 403 viene discusso più spesso come una di queste situazioni:
- La richiesta è bloccata da una regola lato piattaforma, come un filtro WAF
- Il token o la route non sono autorizzati a usare il model richiesto o la forma della richiesta
- Il model scelto rifiuta uno dei parametri avanzati che hai passato
- Riprova con una richiesta testuale molto semplice verso un model sicuramente funzionante.
- Rimuovi i campi avanzati e i parametri specifici del provider, poi riaggiungili gradualmente.
- Se la risposta include un request id, conservalo prima di contattare il supporto.
URL base errato o path errato
Questa è l’area in cui la vecchia pagina era meno accurata. Nei controlli eseguiti sugli endpoint Comet attuali:- L’invio di una richiesta a
https://api.cometapi.com/chat/completionsha restituito un redirect301versohttps://www.cometapi.com/chat/completions - L’invio di una richiesta a una route API fittizia come
https://api.cometapi.com/v1/not-a-real-endpointha anch’esso restituito un redirect301versohttps://www.cometapi.com/v1/not-a-real-endpoint
- Un redirect
- Una risposta HTML non JSON se il tuo client segue i redirect
- Un errore di parsing all’interno del tuo SDK
- Una richiesta che non raggiunge mai correttamente il layer API
- Conferma che l’URL base includa
/v1. - Conferma che il path dell’endpoint corrisponda esattamente alla documentazione.
- Disabilita il follow automatico dei redirect durante il debug dei problemi di path.
413 Request Entity Too Large
Non abbiamo riprodotto un 413 in un test circoscritto, nemmeno con un body di richiesta JSON sovradimensionato da 8 MiB, quindi la vecchia spiegazione secondo cui il prompt era troppo lungo era troppo limitata.
Se vedi effettivamente un 413, trattalo prima di tutto come un problema di dimensione della richiesta. I sospetti più comuni sono:
- Payload base64 di grandi dimensioni
- Immagini o audio troppo grandi incorporati inline
- Body multipart o JSON molto grandi
- Riduci o comprimi i contenuti allegati.
- Suddividi i job di grandi dimensioni in richieste più piccole.
- Non dare per scontato che la lunghezza del solo testo semplice sia l’unica causa.
429 Too Many Requests
Non abbiamo riprodotto un 429 durante una prova di concorrenza circoscritta con 24 richieste parallele GET /v1/models, quindi la soglia esatta dipende chiaramente dalla route, dal model e dallo stato attuale della piattaforma.
Tratta 429 come ritentabile:
- Usa exponential backoff con jitter.
- Riduci la concorrenza nei burst.
- Mantieni attivo il logging delle richieste così da poter vedere quale route e quale model saturano per primi.
500, 503, 504, e 524
Non abbiamo riprodotto questi status in test circoscritti. Dovrebbero essere documentati come errori lato server o timeout, non come errori dell’utente.
Indicazioni pratiche:
500: errore interno della piattaforma o lato provider503: route o servizio del provider temporaneamente non disponibile504e524: errori di tipo timeout tra la piattaforma, l’edge o il servizio del provider
- Riprova con backoff.
- Conserva il
request id, l’endpoint, il model e il timestamp. - Se lo stesso errore si ripete dopo più tentativi, contatta il supporto con questo contesto.
Prima di contattare il Supporto
Raccogli prima questi dettagli:- Metodo HTTP
- Percorso dell’endpoint
- Nome del modello
- JSON del body della richiesta sanitizzato (questo è l’elemento più utile nella maggior parte delle chiamate API)
- Parametri di query, se la richiesta che fallisce li utilizzava
- Body della risposta esatto, se il tuo client lo ha acquisito
- Stato HTTP completo
- Il valore esatto di
error.message - Qualsiasi
request id - Timestamp approssimativo
- Se la stessa richiesta funziona con un altro modello o un altro token
- Nomi dei campi e valori testuali inviati insieme al file
- Nome del file, tipo di file e dimensione approssimativa del file
- Se il file è stato caricato direttamente, referenziato tramite URL o incorporato come base64