> 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/bn/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/bn/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` | কী-এর খরচের সীমা 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` | কী প্রতি মিনিটে অনুরোধের সংখ্যা exceeded; বডিতে — `limit, remaining, reset` সহ `rate_limit` | `Retry-After` এ যত সেকেন্ড আছে তত অপেক্ষা করুন |
| 429 `rate_limit_exceeded` `upstream_rate_limited` | Gonka নেটওয়ার্কে মডেল ওভারলোডেড | `Retry-After` পরে পুনরায় চেষ্টা করুন বা অন্য মডেল নিন — [মডেল](https://gate.joingonka.ai/bn/docs/models) |
| 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` | নেটওয়ার্কের প্রোব অনুযায়ী মডেল এখন অনুপলব্ধ: ত্রুটি, চালু হচ্ছে, অস্থিরতা বা কেউ এটি সার্ভ করুন না; অপেক্ষা ছাড়াই সাথে সাথে প্রত্যাখ্যান | অন্য মডেল নিন — ত্রুটির টেক্সট কোনটি বলবে; তালিকা — [মডেল](https://gate.joingonka.ai/bn/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` সংযুক্ত করুন।
