Ошибки ключа, модели и баланса
Ошибка приходит в формате того API, к которому вы обращались:
- OpenAI —
{"error": {"message", "type", "code", "request_id"}}; - Anthropic —
{"type": "error", "error": {"type", "code", "message"}, "request_id"}.
code — точная причина, на него можно опираться в своём коде; type — категория по стандарту OpenAI или Anthropic; message — что случилось и что сделать, по-русски. request_id есть в каждой ошибке до начала ответа и в заголовке X-Request-ID — приложите его, если пишете в поддержку. Ошибка посреди потокового ответа приходит событием потока; её request_id — в заголовке ответа.
Повторять ли запрос, подсказывает заголовок x-should-retry: false — повтор не поможет (ошибки запроса, ключа, баланса и 500 — ошибка Plexxum, напишите в поддержку с request_id), true — у 503. У 429, 502 и 504 заголовка нет: SDK OpenAI и Anthropic повторяют их по статусу сами.
Неверный запрос — 400 и 413
Заголовок раздела «Неверный запрос — 400 и 413»code | Что делать |
|---|---|
invalid_request | Исправьте запрос: что не так — в message. |
header_not_allowed | Уберите из запроса заголовок, названный в message. |
upstream_invalid_request | Поставщик модели отклонил запрос; его объяснение — в message. Часто это параметр, который модель не поддерживает. |
request_too_large | Ответ 413: запрос слишком большой, чтобы оценить его стоимость. Уменьшите вход или max_tokens. |
Ключ не принят — 401
Заголовок раздела «Ключ не принят — 401»code | Что делать |
|---|---|
invalid_api_key | Ключ скопирован не целиком, с пробелом в конце или отозван (отзыв срабатывает за несколько секунд). Проверьте заголовок Authorization: Bearer <ключ> (или x-api-key для клиентов Anthropic) или создайте новый ключ в «Ключах». |
invalid_token | Токен входа истёк или выдан не тому приложению — войдите заново. |
Не хватает денег или лимита ключа — 402
Заголовок раздела «Не хватает денег или лимита ключа — 402»В ответе есть error.metadata.limit_source — причина отказа — и remedy_hint — что сделать.
code | limit_source | Что делать |
|---|---|---|
insufficient_balance | credits | Пополните «Баланс» или уменьшите max_tokens. |
key_limit_exceeded | key_limit | Поднимите лимит ключа через «Изменить» в «Ключах» или уменьшите max_tokens. |
Перед запросом Plexxum резервирует оценку его стоимости, и она зависит от max_tokens. Поэтому запрос с большим max_tokens может не пройти, даже если баланса хватает на короткий ответ.
Аккаунт заблокирован — 403
Заголовок раздела «Аккаунт заблокирован — 403»code | Что делать |
|---|---|
organization_blocked | Напишите в поддержку. Запросы к моделям по ключам не проходят; кабинет и список моделей открыты, в кабинете — баннер со ссылкой. |
Модель или адрес недоступны — 404
Заголовок раздела «Модель или адрес недоступны — 404»code | Что делать |
|---|---|
model_not_found | Такой модели нет в каталоге. Имя должно точно совпадать с id из каталога или GET /v1/models; имя поставщика перед моделью (openai/) не нужно. |
unsupported_endpoint | Адрес не поддерживается: эмбеддинги, изображения, пакетные запросы. Что есть — в описании API. |
Слишком много запросов — 429
Заголовок раздела «Слишком много запросов — 429»code | Что делать |
|---|---|
concurrency_limit | У аккаунта слишком много одновременных запросов. Дождитесь окончания идущих и уменьшите параллельность. |
rate_limit_exceeded | Слишком часто запрашивается публичный список моделей. Повторите через минуту — так же говорит заголовок Retry-After. |
upstream_overloaded | Перегружен поставщик модели. Повторите позже или выберите другую модель. |
В своём коде добавьте паузу между повторами и увеличивайте её после каждой неудачи.
Сбой у поставщика или у нас — 500, 502, 503 и 504
Заголовок раздела «Сбой у поставщика или у нас — 500, 502, 503 и 504»code | Что делать |
|---|---|
internal_error | Ответ 500: внутренняя ошибка Plexxum, мы её видим. Повторите; если повторится — напишите в поддержку с request_id. |
upstream_error | Ответ 502: поставщик модели вернул ошибку. Деньги за неё не списаны — повторите позже или выберите другую модель. |
service_unavailable | Ответ 503: сервис временно недоступен. Повторите через минуту. |
upstream_timeout | Ответ 504: поставщик не ответил вовремя. Деньги за ответ не списаны — повторите позже. |
Ошибка посреди потокового ответа
Заголовок раздела «Ошибка посреди потокового ответа»Если ответ уже пошёл (stream: true, статус 200), ошибка приходит событием в потоке, а не статусом: у OpenAI — чанк с error (code, type, message), у Anthropic — event: error с {"type": "error", "error": {"type", "message"}}. Причины и code — те же, что выше.
- Адрес API — с
/v1:https://api.plexxum.ru/v1. - Если клиент сам добавляет
/v1, укажите адрес без него. - Для клиентов Anthropic —
https://api.plexxum.ru/anthropic.
Не помогло — напишите на support@plexxum.ru и приложите request_id из ответа или из журнала запросов. Отказы Plexxum до вызова модели (400, 401, 402, 403, 404, 413, 429) в журнал не попадают — их id есть только в ответе; ошибки поставщика в журнале есть.