Для ИИ-агентов: пошаговая инструкция по настройке — /docs/agents.md, индекс документации — /llms.txt.
Ошибки и лимиты
Лимиты запросов, таймауты и коды ошибок шлюза. Для каждого ответа сказано, когда он возникает и что делать: повторить запрос или исправить его.
Лимиты#
Числа — из поля limits ответа GET /v1/capabilities: там всегда актуальные значения.
| Лимит | Значение | При превышении |
|---|---|---|
| Запросов в минуту на ключ | 120, окно 60 с от первого запроса | 429 rate_limit_exceeded и заголовок Retry-After; отказы шлюза 5xx квоту не тратят |
| Одновременные запросы аккаунта | ограничены | лишние ждут в очереди; не дождались — 429 queue_timeout |
| Размер тела запроса | 16 МиБ | 413 |
| Длина ответа | по моделям — таблица ниже | больше потолка модели — срезается до потолка, без ошибки |
| Дочерние ключи | до 50 на управляющий ключ, до 120 запросов в минуту каждому | поднять потолки — через поддержку |
Длина ответа по моделям#
Без max_tokens шлюз подставляет умолчание: без стрима — короче, чтобы ответ уложился в таймауты, в стриме — потолок модели. max_completion_tokens — то же поле.
model | Потолок | Без стрима | В стриме |
|---|---|---|---|
MiniMaxAI/MiniMax-M2.7 | 8192 | 1500 | 8192 |
deepseek-ai/DeepSeek-V4-Flash-0731 | 32768 | 1500 | 32768 |
zai-org/GLM-5.3-Flash | 8192 | 3000 | 8192 |
Таймауты#
| Этап | Значение | Что происходит |
|---|---|---|
| Ожидание места в очереди | 45 с | 429 queue_timeout с заголовком Retry-After: 1 |
| Начало ответа сети, стрим | 150 с | 504 upstream_timeout; списывается оценка входных токенов |
| Начало ответа сети, без стрима | 150 с | 504 upstream_timeout; списывается оценка входных токенов |
| Генерация ответа | ≈ 300 с | сеть обрывает генерацию: ответ приходит с finish_reason: length — продолжите следующим запросом |
| Пауза между чанками стрима | 30 с | поток закрывается: finish_reason: stop в чанке joingonka-stream-stalled |
| Сигнал активности в стриме | 15 с | комментарий : keep-alive — SSE-клиенты его пропускают |
| Открытие потока | 30 с | до этого момента отказ приходит кодом ответа, после — чанком joingonka-error |
| Ранний ответ без стрима | 90 с | шлюз отдаёт 200 и каждые 15 с шлёт пробелы — JSON остаётся валидным; ошибка после этого приходит телом с полем error, статус остаётся 200 |
Что списывается при таймауте
Принятый сетью запрос отменить нельзя. При 504 upstream_timeout списывается оценка входных токенов, выходные — нет; повтор — новое списание. Стрим, оборванный до итогового usage, оплачивается так же. Длинные ответы просите с stream: true.
Коды ошибок#
Тело ошибки — объект error с полями message, type, code, param; часть полей есть не у всех ошибок. Ориентируйтесь на статус и type, уточняйте по code: текст message может меняться. Формат Anthropic — в разделе Формат ошибок Anthropic.
{
"error": {
"message": "Model is currently overloaded in the Gonka network",
"type": "rate_limit_exceeded",
"code": "upstream_rate_limited"
}
}| Ответ | Когда | Что делать |
|---|---|---|
400 invalid_request_error | Неверное тело: нет messages, сообщение не объект, тело не JSON; неизвестная модель — с param: model и списком доступных моделей в тексте | Исправьте запрос по тексту ошибки |
400 invalid_request_error empty_content_after_normalization | Сообщение пустое после нормализации — например, в нём была только картинка | Добавьте в сообщение текст |
400 invalid_request_error web_search_privacy_sanitization_not_supported | Плагины web и privacy-sanitization в одном запросе | Оставьте один из них |
400 invalid_request_error previous_response_id_not_supported conversation_not_supported item_reference_not_supported background_not_supported hosted_tool_choice_not_supported | OpenAI Responses: ссылка на сохранённый ответ, диалог или элемент; фоновый режим; требование встроенного инструмента | Присылайте историю целиком в input |
400 api_error | Сеть отклонила параметры — например, значение reasoning_effort вне её списка | Исправьте значение по тексту ошибки |
401 authentication_error | Ключ не найден, отозван или неизвестного формата | Проверьте ключ на странице gate.joingonka.ai/keys |
402 insufficient_funds | Баланса не хватает на оценку запроса; остаток — в balance_ngonka | Пополните баланс: gate.joingonka.ai/billing |
402 insufficient_funds | Запрос без ключа не с сайта (is_demo: true) | Передайте API-ключ |
402 child_key_limit_exceeded | Превышен лимит расходов ключа — дневной, месячный или общий; остатки — в daily_remaining, monthly_remaining, total_remaining | Поднимите лимит ключа на странице gate.joingonka.ai/keys или дождитесь сброса |
403 forbidden | Управляющий ключ gm- в запросе к модели; API-ключ на маршруте только для кабинета | Для запросов — ключ jg- или gc-; управление аккаунтом — в кабинете |
404 invalid_request_error model_not_found | GET /v1/models/{model}: модели нет в каталоге или она временно скрыта | Возьмите id из GET /v1/models |
404 invalid_request_error not_found compact_not_supported | OpenAI Responses: /v1/responses/{id} и другие адреса состояния, /v1/responses/compact | Храните историю у себя; для Codex CLI задайте свой id провайдера |
404 invalid_request_error | Неизвестный путь | Проверьте метод, путь и базовый адрес |
413 invalid_request_error | Тело запроса больше лимита | Сократите запрос |
415 invalid_request_error | Тело не JSON по заголовку: нужен Content-Type: application/json | Отправьте Content-Type: application/json |
429 rate_limit_exceeded | Превышено число запросов в минуту на ключ; в теле — rate_limit с limit, remaining, reset | Подождите столько секунд, сколько в Retry-After |
429 rate_limit_exceeded upstream_rate_limited | Модель перегружена в сети Gonka | Повторите после Retry-After или возьмите другую модель — Модели |
429 rate_limit_exceeded queue_timeout queue_full | Все места к сети заняты: очередь полна или ожидание истекло | Повторите после Retry-After |
500 server_error | Внутренняя ошибка шлюза | Повторите позже; повторяется — напишите в поддержку и приложите x-request-id |
501 not_implemented | POST /v1/embeddings: в сети нет эмбеддинговых моделей | Возьмите другой сервис эмбеддингов |
502 api_error upstream_unauthorized | Провайдер сети отклонил учётные данные шлюза — ваш ключ в порядке | Повторите через минуту |
502 api_error | Ошибка сети Gonka; code — от сети, если она его прислала | Повторите с паузой или возьмите другую модель |
503 model_unavailable model_outage model_initializing model_unstable model_not_served | Модель сейчас недоступна по пробам сети: сбой, запуск, нестабильность или её никто не обслуживает; отказ сразу, без ожидания | Возьмите другую модель — текст ошибки подскажет какую; список — Модели |
503 service_unavailable | Нет доступных нод | Повторите позже |
504 timeout upstream_timeout | Сеть приняла запрос, но не ответила вовремя; оценка входных токенов списана | Для длинных ответов — stream: true; повтор — новое списание |
Ошибки в открытом потоке#
Пока поток не открыт, отказ приходит обычным кодом ответа — как без стрима. После открытия статус уже 200, и ошибка приходит так:
- Chat Completions — чанк
joingonka-errorс полемerror, затем обрыв без[DONE]. - Без стрима после раннего ответа — статус
200и тело с полемerror. - Anthropic Messages — событие
event: error, затем поток закрывается. - OpenAI Responses — событие
response.failed, причина вresponse.error.code. - Legacy Completions —
data: {"error": …}, затем[DONE].
data: {"id":"joingonka-error","object":"chat.completion.chunk","model":"MiniMaxAI/MiniMax-M2.7","choices":[],"error":{"message":"Gonka network error","type":"api_error"}}Формат ошибок Anthropic#
POST /v1/messagesотвечает конвертом Anthropic:{"type": "error", "error": {"type", "message"}}.- Отказы шлюза сохраняют
typeиз таблицы выше (insufficient_funds,model_unavailableи другие); поляcodeв этом конверте нет — причина в тексте. - Ошибки формы запроса —
invalid_request_error: нет сообщений илиmax_tokens, вызов инструмента без имени, неизвестная модель. - Неизвестный путь —
not_found_error, слишком большое тело —request_too_large.
event: error
data: {"type":"error","error":{"type":"timeout","message":"Upstream timeout"}}Что повторять#
- После паузы из
Retry-After:429 - С нарастающей паузой — 1, 2, 4 с и дальше:
500,502,503 service_unavailable,504 - С другой моделью:
503 model_unavailable - Не повторять без изменений — исправьте запрос, ключ или баланс:
400,401,402,403,404,413,415,501
Каждый повтор после 504 — новое списание оценки входа; для длинных ответов включайте stream: true.
Ошибка повторяется — напишите в поддержку и приложите x-request-id из заголовков ответа.