Цей посібник ґрунтується на перевірках у реальному часі поточного API CometAPI. Ми безпосередньо перевірили збої
400, 401 і помилки шляху/base URL. Ми не відтворювали 413, 429, 500, 503, 504 або 524 у контрольованих тестах, тому рекомендації для цих статусів навмисно є консервативними.Швидка діагностика
| Status | Що це зазвичай означає | Повторити? | Перша дія |
|---|---|---|---|
400 | Валідація запиту не пройшла до того, як запит був успішно маршрутизований. | Ні | Перевірте model, messages, JSON-структуру та типи полів. |
401 | API key відсутній, некоректно сформований або недійсний. | Ні | Перевірте Authorization: Bearer <COMETAPI_KEY>. |
403 | Доступ було заблоковано або поточний запит не дозволено. | Зазвичай ні | Повторіть із гарантовано коректним запитом і спочатку приберіть поля, специфічні для model. |
| Path mistake | Неправильний base URL або неправильний шлях endpoint. У Comet це може проявлятися як редирект 301 або HTML, а не як коректний JSON 404. | Ні | Використовуйте рівно https://api.cometapi.com/v1 і вимкніть автоматичне слідування редиректам під час налагодження. |
429 | Обмеження швидкості або тимчасове перевантаження. | Так | Використовуйте exponential backoff з jitter. |
500, 503, 504, 524 | Платформений збій або збій класу timeout. | Так | Повторіть із backoff і збережіть request id. |
Обгортка помилки
Поточна JSON-обгортка помилки, яку повертає CometAPI, виглядає так:request id всередині error.message. Зберігайте це значення, коли вам потрібна підтримка.
400 Bad Request
Ось що ми спостерігали в live API, коли було пропущено model:
400 зазвичай означає, що тіло запиту не пройшло валідацію до того, як платформа змогла маршрутизувати його до провайдера model.
Поширені причини:
- Відсутні обов’язкові поля, такі як
modelабоmessages - Невалідна JSON-структура
- Надсилання поля з неправильним типом
- Повторне використання параметрів, специфічних для провайдера, які вибраний endpoint не приймає
- Почніть із мінімального гарантовано коректного запиту.
- Додавайте необов’язкові поля назад по одному.
- Порівняйте тіло запиту зі схемою endpoint у довіднику API.
your-model-id на будь-який актуальний ID model зі сторінки CometAPI Models page.
401 Invalid Token
Ось що ми спостерігали в live API з недійсним ключем:
- Заголовок має бути рівно
Authorization: Bearer <COMETAPI_KEY>. - Переконайтеся, що ваш застосунок не підвантажує старий ключ із
.env, історії shell або сховища секретів у продакшені. - Якщо один ключ не працює, а інший працює для того самого запиту, розглядайте це як проблему токена, а не endpoint.
403 Forbidden
Ми не відтворили стабільний 403 у межах обмежених тестів, тому не варто вважати один старий шаблон повідомлення повною картиною.
У поточній документації Comet 403 найчастіше розглядається як одна з таких ситуацій:
- Запит блокується правилом на боці платформи, наприклад фільтрацією WAF
- Токену або маршруту не дозволено використовувати запитувану модель або форму запиту
- Вибрана модель відхиляє один із переданих вами розширених параметрів
- Повторіть запит із дуже простим текстовим запитом до завідомо справної моделі.
- Приберіть розширені поля та специфічні для провайдера параметри, а потім поступово додавайте їх назад.
- Якщо у відповіді є request id, збережіть його перед зверненням до служби підтримки.
Неправильний Base URL або неправильний шлях
Це розділ, у якому стара сторінка була найменш точною. Під час перевірок поточних endpoint-ів Comet:- Надсилання запиту до
https://api.cometapi.com/chat/completionsповертало редирект301наhttps://www.cometapi.com/chat/completions - Надсилання запиту до фальшивого API-маршруту, такого як
https://api.cometapi.com/v1/not-a-real-endpoint, також повертало редирект301наhttps://www.cometapi.com/v1/not-a-real-endpoint
- Редирект
- Не-JSON HTML-відповідь, якщо ваш клієнт переходить за редиректами
- Помилка парсингу у вашому SDK
- Запит, який так і не доходить коректно до API-рівня
- Переконайтеся, що base URL містить
/v1. - Переконайтеся, що шлях endpoint-а точно відповідає документації.
- Вимкніть автоматичне слідування за редиректами під час налагодження проблем зі шляхом.
413 Request Entity Too Large
Ми не відтворили 413 у межах обмеженого тесту навіть із завеликим JSON-тілом запиту розміром 8 MiB, тому старе пояснення, що prompt був надто довгим, було надто вузьким.
Якщо ви все ж бачите 413, спочатку розглядайте це як проблему розміру запиту. Поширені підозрювані причини:
- Великі payload-и у base64
- Завеликі зображення або аудіо, вбудовані inline
- Дуже великі multipart- або JSON-тіла
- Зменште розмір або стисніть вкладений вміст.
- Розбийте великі завдання на менші запити.
- Не припускайте, що єдиною причиною є лише довжина звичайного тексту.
429 Too Many Requests
Ми не відтворили 429 під час обмеженої перевірки конкурентності з 24 паралельними запитами GET /v1/models, тому точний поріг явно залежить від маршруту, моделі та поточного стану платформи.
Сприймайте 429 як помилку, яку можна повторити:
- Використовуйте exponential backoff із jitter.
- Зменште пікову конкурентність.
- Тримайте логування запитів увімкненим, щоб бачити, який маршрут і модель першими досягають насичення.
500, 503, 504, І 524
Ми не відтворили ці статуси в межах обмежених тестів. Їх слід документувати як збої на боці сервера або збої класу timeout, а не як помилки користувача.
Практичні пояснення:
500: внутрішній збій платформи або збій на боці провайдера503: маршрут або сервіс провайдера тимчасово недоступний504і524: збої класу timeout між платформою, edge або сервісом провайдера
- Повторіть запит із backoff.
- Збережіть
request id, endpoint, model і часову мітку. - Якщо та сама помилка повторюється після кількох спроб, зверніться до служби підтримки з цим контекстом.
Перед тим як звертатися до служби підтримки
Спершу зберіть такі деталі:- HTTP-метод
- Шлях endpoint
- Назва моделі
- Очищений JSON тіла запиту (це найкорисніший елемент для більшості API-викликів)
- Параметри запиту, якщо проблемний запит їх використовував
- Точне тіло відповіді, якщо ваш клієнт його зафіксував
- Повний HTTP-статус
- Точний
error.message - Будь-який
request id - Приблизна часова позначка
- Чи працює той самий запит з іншою моделлю або іншим токеном
- Назви полів і текстові значення, які ви надсилали разом із файлом
- Ім’я файлу, тип файлу та приблизний розмір файлу
- Чи файл було завантажено безпосередньо, вказано за URL чи вбудовано як base64