Перейти к содержимому

Ошибки ключа, модели и баланса

Ошибка приходит в формате того 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 повторяют их по статусу сами.

codeЧто делать
invalid_requestИсправьте запрос: что не так — в message.
header_not_allowedУберите из запроса заголовок, названный в message.
upstream_invalid_requestПоставщик модели отклонил запрос; его объяснение — в message. Часто это параметр, который модель не поддерживает.
request_too_largeОтвет 413: запрос слишком большой, чтобы оценить его стоимость. Уменьшите вход или max_tokens.
codeЧто делать
invalid_api_keyКлюч скопирован не целиком, с пробелом в конце или отозван (отзыв срабатывает за несколько секунд). Проверьте заголовок Authorization: Bearer <ключ> (или x-api-key для клиентов Anthropic) или создайте новый ключ в «Ключах».
invalid_tokenТокен входа истёк или выдан не тому приложению — войдите заново.

В ответе есть error.metadata.limit_source — причина отказа — и remedy_hint — что сделать.

codelimit_sourceЧто делать
insufficient_balancecreditsПополните «Баланс» или уменьшите max_tokens.
key_limit_exceededkey_limitПоднимите лимит ключа через «Изменить» в «Ключах» или уменьшите max_tokens.

Перед запросом Plexxum резервирует оценку его стоимости, и она зависит от max_tokens. Поэтому запрос с большим max_tokens может не пройти, даже если баланса хватает на короткий ответ.

codeЧто делать
organization_blockedНапишите в поддержку. Запросы к моделям по ключам не проходят; кабинет и список моделей открыты, в кабинете — баннер со ссылкой.
codeЧто делать
model_not_foundТакой модели нет в каталоге. Имя должно точно совпадать с id из каталога или GET /v1/models; имя поставщика перед моделью (openai/…) не нужно.
unsupported_endpointАдрес не поддерживается: эмбеддинги, изображения, пакетные запросы. Что есть — в описании API.
codeЧто делать
concurrency_limitУ аккаунта слишком много одновременных запросов. Дождитесь окончания идущих и уменьшите параллельность.
rate_limit_exceededСлишком часто запрашивается публичный список моделей. Повторите через минуту — так же говорит заголовок Retry-After.
upstream_overloadedПерегружен поставщик модели. Повторите позже или выберите другую модель.

В своём коде добавьте паузу между повторами и увеличивайте её после каждой неудачи.

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 есть только в ответе; ошибки поставщика в журнале есть.