Obsługa błędów w CometAPI jest najprostsza, gdy rozdzielisz problemy z kształtem żądania, problemy z autoryzacją, błędy ścieżki oraz błędy platformy nadające się do ponowienia. Użyj kombinacji statusu 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 i error.message, aby zdecydować, czy poprawić żądanie, czy ponowić próbę.
Szybka diagnostyka
| Status | Co zwykle oznacza | Ponowić? | Pierwsze działanie |
|---|---|---|---|
400 | Walidacja żądania nie powiodła się, zanim żądanie zostało normalnie przetworzone. | Nie | Zweryfikuj model, messages, strukturę JSON i typy pól. |
401 | Klucz API jest brakujący, nieprawidłowo sformatowany lub nieważny. | Nie | Sprawdź Authorization: Bearer <COMETAPI_KEY>. |
403 | Dostęp został zablokowany lub bieżące żądanie nie było dozwolone. | Zwykle nie | Ponów próbę z minimalnym, poprawnym żądaniem i najpierw usuń pola specyficzne dla modelu. |
| Path mistake | Nieprawidłowy base URL lub nieprawidłowa ścieżka endpointu. W Comet może to objawiać się jako przekierowanie 301 lub HTML, a nie czysty JSON 404. | Nie | Użyj dokładnie https://api.cometapi.com/v1 i wyłącz automatyczne podążanie za przekierowaniami podczas debugowania. |
429 | Ograniczanie liczby żądań lub tymczasowe przeciążenie. | Tak | Użyj exponential backoff z jitterem. |
500 with error.code: invalid_request | Nieprawidłowo sformułowane żądanie zostało zwrócone przez odpowiedź ze statusem serwera. | Nie | Popraw treść żądania przed ponowieniem próby. |
500, 503, 504, 524 | Błąd platformy, dostawcy lub klasy timeout. | Tak | Ponów próbę z backoff i zachowaj request id. |
Obwiednia błędu
Wiele błędów CometAPI używa treści błędu w takiej postaci:code puste. Gdy status to 500, traktuj error.code i error.message jako sygnał decydujący.
400 Bad Request
400 zwykle oznacza, że treść żądania nie przeszła walidacji, zanim żądanie mogło zostać normalnie przetworzone.
Typowe przyczyny:
- Brak wymaganych pól, takich jak
model - Nieprawidłowa struktura JSON
- Wysłanie pola z nieprawidłowym typem
- Ponowne użycie parametrów specyficznych dla dostawcy, których wybrany endpoint nie akceptuje
your-model-id dowolnym aktualnym model ID ze strony modeli CometAPI.
Nie zakładaj, że każde nieprawidłowe żądanie chat zwraca 400. Brak wymaganych pól chat, takich jak messages, może również pojawić się jako 500 z error.code: invalid_request.
500 Internal Server Error
Większość odpowiedzi 500 wskazuje na błąd platformy lub dostawcy. W przypadku Chat Completions niektóre nieprawidłowe żądania mogą również pojawiać się jako 500, nadal zawierając error.code: invalid_request.
Jednym z przykładów jest żądanie, które pomija messages:
500 ma error.code: invalid_request, traktuj ją jako problem z żądaniem:
- Popraw treść żądania.
- Porównaj payload ze schematem endpointu.
- Ponów próbę dopiero po poprawieniu payload.
500 nie wskazuje na nieprawidłowe żądanie, zachowaj request id i użyj backoff.
401 Invalid Token
Błąd tokenu zwykle wygląda tak:
- Nagłówek musi mieć dokładnie postać
Authorization: Bearer <COMETAPI_KEY>. - Upewnij się, że aplikacja nie ładuje starego klucza z
.env, historii shella lub wdrożonego magazynu sekretów. - Jeśli jeden klucz nie działa, a inny działa dla tego samego żądania, traktuj to jako problem z tokenem, a nie z endpointem.
403 Forbidden
403 najczęściej oznacza jedną z tych sytuacji:
- Żądanie jest blokowane przez regułę po stronie platformy, taką jak filtrowanie WAF
- Token lub trasa nie mają uprawnień do użycia żądanego modelu albo kształtu żądania
- Wybrany model odrzuca jeden z zaawansowanych parametrów, które przekazano
- Spróbuj ponownie z bardzo prostym żądaniem tekstowym skierowanym do modelu, o którym wiadomo, że działa poprawnie.
- Usuń zaawansowane pola i parametry specyficzne dla providera, a następnie dodawaj je z powrotem stopniowo.
- Jeśli odpowiedź zawiera request id, zachowaj je przed skontaktowaniem się ze wsparciem.
Nieprawidłowy base URL lub nieprawidłowa ścieżka
W Comet błąd ścieżki może objawiać się jako:- Przekierowanie
- Odpowiedź HTML niebędąca JSON-em, jeśli klient podąża za przekierowaniami
- Błąd parsowania w SDK
- Żądanie, które nigdy nie dociera poprawnie do warstwy API
- Potwierdź, że base URL zawiera
/v1. - Potwierdź, że ścieżka endpointu dokładnie odpowiada dokumentacji.
- Wyłącz automatyczne podążanie za przekierowaniami podczas debugowania problemów ze ścieżką.
413 Request Entity Too Large
Jeśli widzisz 413, najpierw traktuj to jako problem z rozmiarem żądania. Typowe przyczyny to:
- Duże ładunki base64
- Zbyt duże obrazy lub audio osadzone inline
- Bardzo duże ciała żądań multipart lub JSON
- Zmniejsz lub skompresuj dołączoną zawartość.
- Podziel duże zadania na mniejsze żądania.
- Nie zakładaj, że jedyną przyczyną jest długość zwykłego tekstu.
429 Too Many Requests
429 należy traktować jako błąd, po którym można ponowić próbę:
- Użyj exponential backoff z jitter.
- Zmniejsz współbieżność burstów.
- Pozostaw włączone logowanie żądań, aby widzieć, która trasa i który model nasycają się jako pierwsze.
503, 504, and 524
Te statusy to błędy po stronie serwera lub klasy timeout.
Praktyczne wskazówki:
503: trasa lub usługa providera jest tymczasowo niedostępna504i524: błędy klasy timeout między platformą, warstwą edge lub usługą providera
- Ponów próbę z backoff.
- Zachowaj
request id, endpoint, model i znacznik czasu. - Jeśli ten sam błąd powtarza się przy wielu ponowieniach, skontaktuj się ze wsparciem, przekazując ten kontekst.
Zanim skontaktujesz się ze wsparciem
Najpierw zbierz te informacje:- Metoda HTTP
- Ścieżka endpointu
- Model ID
- Oczyszczony JSON treści żądania (to pojedynczy najbardziej przydatny element w przypadku większości wywołań API)
- Parametry zapytania, jeśli nieudane żądanie ich używało
- Dokładna treść odpowiedzi, jeśli Twój klient ją przechwycił
- Pełny status HTTP
- Dokładne
error.message - Dowolne
request id - Przybliżony znacznik czasu
- Czy to samo żądanie działa z innym modelem lub innym tokenem
- Nazwy pól i wartości tekstowe, które zostały wysłane razem z plikiem
- Nazwa pliku, typ pliku i przybliżony rozmiar pliku
- Czy plik został przesłany bezpośrednio, wskazany przez URL czy osadzony jako base64