ত্রুটি
প্রতিটি এন্ডপয়েন্ট একইভাবে ব্যর্থ হয়: একটি HTTP স্ট্যাটাস এবং একটি JSON এনভেলপ।
{
"error": {
"type": "invalid_request",
"code": "invalid_input",
"message": "duration must be one of 5, 10.",
"param": "duration",
"details": [ { "param": "duration", "message": "duration must be one of 5, 10." } ],
"request_id": null,
"doc_url": "https://doitong.com/developers/docs/errors#invalid_input"
}
}
| ফিল্ড | অর্থ |
|---|---|
type |
ত্রুটির বিস্তৃত শ্রেণি। এটি দেখে কী করতে হবে নির্ধারণ করুন। |
code |
সঠিক কারণ, স্থিতিশীল এবং মেশিন-পাঠ্য। প্রতিটি কোডের নিচে একটি বিভাগ আছে; doc_url সেটির লিংক দেয়। |
message |
মানুষের পড়ার উপযোগী ব্যাখ্যা, লগ করা বা কোনো ডেভেলপারকে দেখানোর জন্য নিরাপদ। |
param |
যে ইনপুট প্যারামিটার বা হেডারটির কারণে সমস্যা হয়েছে, যদি থাকে। |
details |
ইনপুট ত্রুটির ক্ষেত্রে পাওয়া প্রতিটি সমস্যা: [{ "param", "message" }]। |
request_id |
যে রিকোয়েস্টটির সঙ্গে এটি সম্পর্কিত, যদি থাকে। |
ত্রুটি ফেরত দেয় এমন কলের জন্য কোনো চার্জ নেওয়া হয় না। গ্রহণ করার পরে ব্যর্থ হওয়া কোনো রিকোয়েস্টের স্ট্যাটাস
failed থাকে, রিকোয়েস্ট অবজেক্টে error: { "type", "code", "message" } বহন করে এবং স্বয়ংক্রিয়ভাবে অর্থ ফেরত দেওয়া হয়।
ধরন
| ধরন | HTTP স্ট্যাটাস | কী করতে হবে |
|---|---|---|
invalid_request |
400, 413 or 422 | রিকোয়েস্ট ঠিক করুন। একই কল আবার চেষ্টা করলেও পুনরায় ব্যর্থ হবে। |
authentication_error |
401 | Authorization: Bearer <key>-এ একটি বৈধ কী পাঠান। |
permission_error |
403 | প্রয়োজনীয় স্কোপসহ একটি কী ব্যবহার করুন। |
not_found |
404 | মডেল আইডি বা রিকোয়েস্ট আইডি পরীক্ষা করুন। |
insufficient_credits |
402 | API ব্যালান্সে টপ-আপ করুন (ত্রুটিতে top_up_url আছে)। |
budget_exceeded |
402 | কীর নিজস্ব বাজেট শেষ হয়ে গেছে। চূড়ান্ত পদক্ষেপ: কীর মালিককে বাজেট বাড়াতে বলুন। |
conflict |
409 | রিসোর্সটি এমন অবস্থায় নেই যেখানে এই কল অনুমোদিত। |
rate_limited |
429 | Retry-After সেকেন্ড অপেক্ষা করে আবার চেষ্টা করুন। |
upstream_error |
502 | মডেল ব্যাকএন্ড ব্যর্থ হয়েছে। একই Idempotency-Key দিয়ে আবার চেষ্টা করা নিরাপদ: এটি পুনরায় চলবে; আপনার কাছ থেকে চার্জ নেওয়া হয়নি। |
service_unavailable |
503 | API বিরতিতে আছে অথবা কোনো নির্ভরতা ডাউন। পরে আবার চেষ্টা করুন। |
internal_error |
500 | আমাদের বাগ। আবার চেষ্টা করুন; সমস্যা চলতে থাকলে সময় এবং request_id-সহ সাপোর্টে যোগাযোগ করুন। |
কোড
invalid_request
সাধারণ ত্রুটিপূর্ণ রিকোয়েস্ট (400)।
invalid_json
বডিটি বৈধ JSON নয় (400)।
invalid_body
বডিটি বৈধ JSON, কিন্তু কোনো অবজেক্ট নয়; মডেল ইনপুট অবশ্যই একটি JSON অবজেক্ট হতে হবে (400)।
body_too_large
বডিটি 16 MB-এর চেয়ে বড় (413)। বড় ফাইল আপলোড করে তার পরিবর্তে URL পাঠান (দেখুন ফাইল)।
invalid_parameter
কোনো কোয়েরি প্যারামিটারের মান ভুল, যেমন limit 1 থেকে 100-এর বাইরে, wait সংখ্যা নয়, অজানা
status বা category, অথবা permanent / temporary ছাড়া অন্য কোনো storage (400)। param সেটির নাম দেয়।
invalid_category
GET /openapi.json?category= এমন একটি বিভাগের নাম দেয় যা বিদ্যমান নয় (400)। GET https://api.doitong.com/v1/categories সেগুলোর তালিকা দেখায়।
invalid_cursor
কোনো তালিকা কলের cursor এই তালিকার অন্তর্ভুক্ত নয় (400)। কার্সর ছাড়া আবার শুরু করুন।
invalid_idempotency_key
Idempotency-Key হেডারটি খালি অথবা 255 অক্ষরের চেয়ে দীর্ঘ (400)।
invalid_arguments
একটি MCP টুল কলে কোনো আর্গুমেন্ট অনুপস্থিত বা ত্রুটিপূর্ণ (শুধু MCP)। param আর্গুমেন্টটির নাম দেয়।
invalid_input
মডেল ইনপুট যাচাইয়ে উত্তীর্ণ হয়নি (422): অজানা প্যারামিটার (বার্তায় সবচেয়ে কাছের বৈধ নামটি প্রস্তাব করা হয়),
প্রয়োজনীয় প্যারামিটার অনুপস্থিত, ভুল ধরন, অনুমোদিত তালিকা বা পরিসরের বাইরে কোনো মান, অথবা একই মান না দিয়ে ক্যানোনিক্যাল ও
নেটিভ—দুই নামই দেওয়া হয়েছে। param প্রথম সমস্যাযুক্ত প্যারামিটারটি এবং details সবগুলো প্যারামিটার তালিকাভুক্ত করে।
কোনো চার্জ নেওয়া হয় না।
unsupported_file
কোনো ফাইলের ধরন আমরা গ্রহণ করি না (422), যেমন অসমর্থিত এক্সটেনশনসহ আপলোড, অথবা এক্সটেনশনের সঙ্গে না-মেলা content_type।
invalid_webhook_url
webhook_url কোনো সর্বজনীন https:// URL নয় (422)। ব্যক্তিগত, স্থানীয় এবং সাধারণ http:// ঠিকানা প্রত্যাখ্যান করা হয়।
missing_api_key
এন্ডপয়েন্টটির একটি API কী প্রয়োজন, কিন্তু কোনোটি পাঠানো হয়নি (401)।
invalid_api_key
কীটি অজানা, প্রত্যাহৃত বা মেয়াদোত্তীর্ণ (401)।
insufficient_scope
এই কলের জন্য প্রয়োজনীয় স্কোপটি কীর নেই (403), যেমন রান করার জন্য models:run, অথবা
রিকোয়েস্ট ও ব্যালান্স পড়ার জন্য models:read। দেখুন প্রমাণীকরণ।
account_disabled
অ্যাকাউন্টটি বন্ধ বা স্থগিত (403)। এর কীগুলো আর কাজ করে না।
not_found
পাথটি বিদ্যমান নয় (404)।
model_not_found
এই আইডিসহ কোনো সর্বজনীন মডেল নেই (404)। GET https://api.doitong.com/v1/models দিয়ে মডেলের তালিকা দেখুন।
request_not_found
আপনার অ্যাকাউন্টে এই আইডিসহ কোনো রিকোয়েস্ট নেই (404)। অন্য অ্যাকাউন্টের রিকোয়েস্ট কখনো দৃশ্যমান হয় না।
insufficient_credits
অ্যাকাউন্টের API ব্যালান্স (API ক্রেডিট, ১,০০০ API ক্রেডিট = ১$ — Doitong অ্যাপগুলোর ক্রেডিট নয়) এই কলের
মূল্য পরিশোধের জন্য যথেষ্ট নয় (402)। কোনো চার্জ নেওয়ার আগে প্রতিক্রিয়া পাঠানো হয়। ত্রুটিতে top_up_url থাকে; https://doitong.com/developers/dashboard#balance-এ
টাকা যোগ করে আবার চেষ্টা করুন।
{ "error": { "type": "insufficient_credits", "code": "insufficient_credits",
"message": "This request costs 560 API credits ($0.56); the API balance is 120 API credits ($0.12). Top up at https://doitong.com/developers/dashboard#balance",
"top_up_url": "https://doitong.com/developers/dashboard#balance", "doc_url": "https://doitong.com/developers/docs/errors#insufficient_credits" } }
budget_exceeded
কলটি API ক্রেডিটে API কীর নিজস্ব বাজেট অতিক্রম করবে (402)। বাজেট কীর মালিক নির্ধারণ করেন; তিনি না বাড়ানো পর্যন্ত আবার চেষ্টা করে কোনো লাভ হবে না।
conflict
কলটি রিসোর্সের বর্তমান অবস্থার সঙ্গে সাংঘর্ষিক (409)।
idempotency_mismatch
Idempotency-Key আগে ভিন্ন বডির সঙ্গে ব্যবহার করা হয়েছে (409)। নতুন অপারেশনের জন্য নতুন কী ব্যবহার করুন।
idempotency_in_progress
একই Idempotency-Key-সহ একটি রিকোয়েস্ট এই মুহূর্তে তৈরি হচ্ছে (409)। এটি পেতে কিছুক্ষণ পর আবার চেষ্টা করুন।
request_active
রিকোয়েস্টটি এখনও queued বা running, তাই মুছে ফেলার মতো কোনো ফাইল এখনো নেই (409)। এটি শেষ হলে ফাইলগুলো মুছুন।
not_cancelable
রিকোয়েস্টটি ইতিমধ্যে succeeded বা failed এবং বাতিল করা যায় না (409)।
rate_limited
বর্তমান উইন্ডোতে কীটি অতিরিক্ত রিকোয়েস্ট করেছে (429)। X-RateLimit-* এবং Retry-After হেডার দেখুন।
too_many_inflight
অ্যাকাউন্টে ইতিমধ্যে 10টি queued বা running রিকোয়েস্ট আছে (429)। এগুলোর একটি শেষ হলে পরেরটি শুরু করুন।
upstream_error
মডেল ব্যাকএন্ড রিকোয়েস্টটি প্রত্যাখ্যান বা ব্যর্থ করেছে (রানে 502, অথবা রিকোয়েস্টে এই কোডসহ failed)। API ক্রেডিট
ফেরত দেওয়া হয়। ব্যাকএন্ড নিজেই ইনপুট প্রত্যাখ্যান করলে কলটি তার বার্তাসহ 422 invalid_input ফেরত দেয়।
upstream_lost
মডেল ব্যাকএন্ড আর রিকোয়েস্টটি জানে না, তাই কোনো ফলাফল আর আসবে না। এটি এই কোডসহ failed হিসেবে শেষ হয়
(ধরন upstream_error) এবং অর্থ ফেরত দেওয়া হয়। আবার চালান।
timeout
রিকোয়েস্টটি নির্ধারিত সীমার চেয়ে বেশি সময় চলেছে (ছবির জন্য 15 মিনিট, ভিডিওর জন্য 60, অন্য সবকিছুর জন্য 30) এবং থামিয়ে দেওয়া হয়েছে। এটি
এই কোডসহ failed হিসেবে শেষ হয় এবং অর্থ ফেরত দেওয়া হয়।
service_unavailable
API সাময়িকভাবে বিরতিতে আছে, অথবা ফাইল আপলোডের মতো কোনো নির্ভরতা ডাউন (503)। পরে আবার চেষ্টা করুন।
internal_error
আমাদের দিক থেকে কোনো সমস্যা হয়েছে (500)। আবার চেষ্টা করুন; সমস্যা চলতে থাকলে সাপোর্টে যোগাযোগ করুন।
charge_failed
অভ্যন্তরীণ সমস্যার কারণে অ্যাকাউন্টে চার্জ করা যায়নি (500)। রিকোয়েস্টটি failed হিসেবে চিহ্নিত করা হয়েছে; কোনো অর্থ নেওয়া হয়নি।
আবার চেষ্টা করুন।
pricing_unavailable
মডেলের মূল্য কনফিগার করা নেই, তাই এই মুহূর্তে এর মূল্য জানানো বা চালানো যায় না (500)।