AI エージェント向け:セットアップの手順ガイド — /docs/agents.md、ドキュメントのインデックス — /llms.txt。
エラーと制限
ゲートウェイのレート制限、タイムアウト、エラーコード。各レスポンスについて、それが発生する条件と対処法(リクエストの再試行または修正)を説明します。
制限#
数値はレスポンスGET /v1/capabilitiesのlimitsフィールドにあります。常に最新の値が記載されています。
| 制限 | 値 | 超過時 |
|---|---|---|
| キーあたりの毎分リクエスト数 | 120、最初のリクエストからの60秒ウィンドウ | 429 rate_limit_exceededとヘッダーRetry-After。ゲートウェイの5xx拒否はクォータを消費しません |
| アカウントの同時リクエスト数 | 制限あり | 超過分はキューで待機。待ちきれない場合は429 queue_timeout |
| リクエストボディのサイズ | 16MiB | 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秒 | Retry-After: 1ヘッダー付きの429 queue_timeout |
| ネットワーク応答の開始、ストリーミング | 150秒 | 504 upstream_timeout。入力トークンの推定値が請求されます |
| ネットワーク応答の開始、非ストリーミング | 150秒 | 504 upstream_timeout。入力トークンの推定値が請求されます |
| 回答の生成 | ≈300秒 | ネットワークが生成を中断:レスポンスはfinish_reason: length付きで返ります。次のリクエストで続けてください |
| ストリームのチャンク間のポーズ | 30秒 | ストリームが閉じます:チャンクjoingonka-stream-stalledのfinish_reason: stop |
| ストリームのキープアライブシグナル | 15秒 | コメント: keep-alive — SSEクライアントはこれをスキップします |
| ストリームの開始 | 30秒 | この時点まではレスポンスコードで拒否が返り、それ以降はチャンクjoingonka-errorで返ります |
| 非ストリーミングの早期レスポンス | 90秒 | ゲートウェイは200を返し、15秒ごとにスペースを送信します — JSONは有効なままです。その後のエラーはerrorフィールドを含むボディで返り、ステータスは200のままです |
タイムアウト時の請求内容
ネットワークが受理したリクエストはキャンセルできません。504 upstream_timeout の場合、入力トークンの見積もり分が課金され、出力分は課金されません。再試行は新たな課金となります。最終的な usage の前に途切れたストリームも同様に課金されます。長い応答が必要な場合は stream: true をご利用ください。
エラーコード#
エラー本体は message, type, code, param フィールドを持つ error オブジェクトです。すべてのエラーに全フィールドがあるわけではありません。ステータスと 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}: モデルがカタログに存在しないか、一時的に非表示になっています | GET /v1/models から id を取得してください |
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 | キーあたりの 1 分間のリクエスト数が上限を超過。ボディに limit, remaining, reset を含む rate_limit があります | 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 | ネットワークプロバイダーがゲートウェイの認証情報を拒否 — お客様のキーは正常です | 1 分後に再試行してください |
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 —
errorフィールドを持つjoingonka-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 を添えてサポートにお問い合わせください。