> AI एजेंट्स के लिए: सेटअप की चरण-दर-चरण गाइड — [`/docs/agents.md`](https://gate.joingonka.ai/docs/agents.md), दस्तावेज़ इंडेक्स — [`/llms.txt`](https://gate.joingonka.ai/llms.txt)।

# एरर और सीमाएँ

गेटवे की अनुरोध सीमाएँ, टाइमआउट और त्रुटि कोड। हर रिस्पॉन्स के लिए बताया गया है कि वह कब होता है और क्या करना है: अनुरोध दोहराएँ या उसे ठीक करें।

## सीमाएँ

संख्याएँ — जवाब `GET /v1/capabilities` के फ़ील्ड `limits` से: वहाँ हमेशा मौजूदा मान रहते हैं।

| सीमा | मान | पार होने पर |
| --- | --- | --- |
| प्रति की प्रति मिनट अनुरोध | 120, पहले अनुरोध से 60 सेकंड की विंडो | `429 rate_limit_exceeded` और हेडर `Retry-After`; गेटवे की 5xx अस्वीकृतियाँ कोटा नहीं खर्च करतीं |
| अकाउंट के समवर्ती अनुरोध | सीमित | अतिरिक्त कतार में इंतज़ार करते हैं; बारी न आई तो — `429 queue_timeout` |
| अनुरोध बॉडी का आकार | 16 MiB | `413` |
| जवाब की लंबाई | [मॉडल के अनुसार — नीचे टेबल](https://gate.joingonka.ai/hi/docs/errors#max-tokens) | मॉडल की ऊपरी सीमा से ज़्यादा — बिना एरर के सीमा तक काट दिया जाता है |
| चाइल्ड की | प्रति मैनेजर की 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` के साथ अनुरोध करें।

## एरर कोड

एरर का बॉडी एक ऑब्जेक्ट `error` होता है जिसमें `message, type, code, param` फ़ील्ड होते हैं; हर एरर में सभी फ़ील्ड नहीं होते। स्टेटस और `type` को देखें, `code` से पुष्टि करें: `message` का टेक्स्ट बदल सकता है। Anthropic फ़ॉर्मैट — [Anthropic एरर फ़ॉर्मैट](https://gate.joingonka.ai/hi/docs/errors#anthropic-errors) सेक्शन में।

```json
{
  "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](https://gate.joingonka.ai/keys) पेज पर की जाँच करें |
| 402 `insufficient_funds` | अनुरोध के अनुमान के लिए बैलेंस कम है; बची राशि — `balance_ngonka` में | बैलेंस टॉप अप करें: [gate.joingonka.ai/billing](https://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](https://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` | की पर प्रति मिनट अनुरोधों की संख्या पार हो गई; बॉडी में — `limit, remaining, reset` के साथ `rate_limit` | `Retry-After` में जितने सेकंड हैं उतना इंतज़ार करें |
| 429 `rate_limit_exceeded` `upstream_rate_limited` | Gonka नेटवर्क में मॉडल ओवरलोडेड है | `Retry-After` के बाद दोबारा भेजें या दूसरा मॉडल लें — [मॉडल्स](https://gate.joingonka.ai/hi/docs/models) |
| 429 `rate_limit_exceeded` `queue_timeout` `queue_full` | नेटवर्क की सभी जगहें भरी हैं: कतार पूरी है या इंतज़ार का समय खत्म हो गया | `Retry-After` के बाद दोबारा भेजें |
| 500 `server_error` | गेटवे की आंतरिक गड़बड़ी | बाद में दोबारा भेजें; बार-बार हो रहा हो — सपोर्ट को लिखें और `x-request-id` संलग्न करें |
| 501 `not_implemented` | `POST /v1/embeddings`: नेटवर्क में कोई embedding मॉडल नहीं है | कोई दूसरी embedding सेवा लें |
| 502 `api_error` `upstream_unauthorized` | नेटवर्क के प्रोवाइडर ने गेटवे के क्रेडेंशियल अस्वीकार कर दिए — आपकी की ठीक है | एक मिनट बाद दोबारा भेजें |
| 502 `api_error` | Gonka नेटवर्क की गड़बड़ी; `code` — नेटवर्क से, अगर उसने भेजा हो | पॉज़ के साथ दोबारा भेजें या दूसरा मॉडल लें |
| 503 `model_unavailable` `model_outage` `model_initializing` `model_unstable` `model_not_served` | नेटवर्क की जाँच के अनुसार मॉडल अभी उपलब्ध नहीं है: खराबी, शुरू हो रहा है, अस्थिरता या उसे कोई सर्व नहीं कर रहा; इनकार तुरंत, बिना इंतज़ार | दूसरा मॉडल लें — एरर का टेक्स्ट बताएगा कौन-सा; सूची — [मॉडल्स](https://gate.joingonka.ai/hi/docs/models) |
| 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]`।

```text
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`।

```text
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` संलग्न करें।
