La gestione degli errori di CometAPI è più semplice quando separi problemi nella struttura della richiesta, problemi di autenticazione, errori di path e guasti della piattaforma ritentabili. Usa la combinazione di stato 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 per decidere se correggere la richiesta o riprovarla.
Triage rapido
| Status | Cosa significa di solito | Riprovare? | Prima azione |
|---|---|---|---|
400 | La validazione della richiesta è fallita prima che la richiesta venisse elaborata normalmente. | No | Convalida 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 modello. |
| Path mistake | URL di base errato o path dell’endpoint errato. Su Comet questo può apparire come un reindirizzamento 301 o HTML, non come un 404 JSON pulito. | No | Usa esattamente https://api.cometapi.com/v1 e disattiva il follow automatico dei redirect durante il debug. |
429 | Rate limiting o saturazione temporanea. | Sì | Usa exponential backoff con jitter. |
500 with error.code: invalid_request | Una richiesta malformata è emersa tramite una risposta con stato di errore del server. | No | Correggi il corpo della richiesta prima di riprovare. |
500, 503, 504, 524 | Errore della piattaforma, del provider o classe di timeout. | Sì | Riprova con backoff e conserva il request id. |
Error envelope
Molti errori di CometAPI usano un corpo di errore come questo:code vuoto. Quando lo stato è 500, considera error.code e error.message come il segnale decisivo.
400 Bad Request
Un 400 di solito significa che il corpo della richiesta non ha superato la validazione prima che la richiesta potesse essere elaborata normalmente.
Cause comuni:
- Campi obbligatori mancanti come
model - Struttura JSON non valida
- Invio di un campo con il tipo sbagliato
- Riutilizzo di parametri specifici del provider che l’endpoint selezionato non accetta
your-model-id con qualsiasi model ID corrente dalla pagina dei modelli CometAPI.
Non dare per scontato che ogni richiesta chat malformata restituisca 400. La mancanza di campi chat obbligatori come messages può anche emergere come 500 con error.code: invalid_request.
500 Internal Server Error
La maggior parte delle risposte 500 indica un errore della piattaforma o del provider. Per Chat Completions, alcune richieste malformate possono anche emergere come 500 pur includendo error.code: invalid_request.
Un esempio è una richiesta che omette messages:
500 ha error.code: invalid_request, trattala come un problema della richiesta:
- Correggi il corpo della richiesta.
- Confronta il payload con lo schema dell’endpoint.
- Riprova solo dopo aver corretto il payload.
500 non indica una richiesta non valida, conserva il request id e usa il backoff.
401 Invalid Token
Un errore del token di solito appare così:
- 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 uno secret store distribuito. - Se una chiave fallisce e un’altra funziona sulla stessa request, trattalo come un problema di token, non come un problema di endpoint.
403 Forbidden
403 corrisponde più spesso a una di queste situazioni:
- La request è bloccata da una regola lato piattaforma come il filtraggio WAF
- Il token o la route non sono autorizzati a usare il model richiesto o la forma della request
- Il model scelto rifiuta uno dei parametri avanzati che hai passato
- Riprova con una semplice request di testo verso un model noto e 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
Su Comet, un errore nel path può manifestarsi come:- Un redirect
- Una risposta HTML non JSON se il tuo client segue i redirect
- Un errore di parsing all’interno del tuo SDK
- Una request che non raggiunge correttamente il livello API
- Verifica che l’URL base includa
/v1. - Verifica che il path dell’endpoint corrisponda esattamente alla documentazione.
- Disabilita il follow automatico dei redirect mentre esegui il debug di problemi di path.
413 Request Entity Too Large
Se vedi 413, trattalo prima di tutto come un problema di dimensione della request. 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 il contenuto allegato.
- Suddividi i job grandi in request più piccole.
- Non dare per scontato che la lunghezza del solo testo semplice sia l’unica causa.
429 Too Many Requests
Tratta 429 come ripetibile:
- Usa exponential backoff con jitter.
- Riduci la concorrenza dei burst.
- Mantieni attivo il logging delle request così puoi vedere quale route e quale model si saturano per primi.
503, 504, and 524
Questi status sono errori lato server o della classe timeout.
Indicazioni pratiche:
503: route o servizio del provider temporaneamente non disponibile504e524: errori della classe timeout tra la piattaforma, l’edge o il servizio del provider
- Riprova con backoff.
- Conserva il
request id, endpoint, model e timestamp. - Se lo stesso errore si ripete in più retry, contatta il supporto con questo contesto.
Prima di contattare il supporto
Raccogli prima questi dettagli:- Metodo HTTP
- Percorso dell’endpoint
- Model ID
- JSON del body della richiesta sanitizzato (questo è l’unico elemento più utile per la maggior parte delle chiamate API)
- Parametri di query se la richiesta che ha fallito li utilizzava
- Body della risposta esatto se il tuo client lo ha acquisito
- Stato HTTP completo
- L’esatto
error.message - Qualsiasi
request id - Timestamp approssimativo
- Se la stessa richiesta funziona con un altro model o un altro token
- Nomi dei campi e valori di testo che hai inviato 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