अकाउंट
त्रुटियाँ
गेटवे द्वारा लौटाए जाने वाले हर त्रुटि कोड को OpenAI त्रुटि संरचना में देखें, कारण समझें और जानें कि प्रत्येक को कैसे ठीक करें।
त्रुटियाँ OpenAI error shape का इस्तेमाल करती हैं, इसलिए आधिकारिक SDK उन्हें अपने सामान्य exceptions (APIError, RateLimitError, AuthenticationError आदि) में बदल देते हैं। code के आधार पर branch करें; message अंग्रेज़ी में इंसानों के पढ़ने लायक व्याख्या है।
{
"error": {
"message": "This request may cost up to $0.0123 but your balance is $0.0040. Add funds at /pricing.",
"type": "insufficient_quota",
"code": "insufficient_balance"
}
}
विफल requests का शुल्क नहीं लगता। 4xx या 5xx status वाले किसी भी response की कोई लागत नहीं होती।
Gateway error codes
| Status | code | type | अर्थ |
|---|---|---|---|
| 400 | model_required | invalid_request_error | model फ़ील्ड मौजूद नहीं है। |
| 400 | invalid_json | invalid_request_error | Body एक JSON object नहीं है। |
| 400 | invalid_body | invalid_request_error | Multipart body पढ़ी नहीं जा सकी। |
| 400 | max_tokens_too_large | invalid_request_error | Playground की ट्रायल request ने बहुत ज़्यादा output tokens माँगे। |
| 401 | invalid_api_key | authentication_error | Key गायब, गलत फ़ॉर्मैट वाली या revoke की गई है। |
| 402 | insufficient_balance | insufficient_quota | आपका USD बैलेंस $0 है या अनुरोध की अनुमानित अधिकतम लागत (इनपुट, आउटपुट सीमा, इमेज या वीडियो अवधि) से कम है। अनुरोध भेजा नहीं जाता। |
| 403 | model_not_allowed | permission_error | Key की मॉडल allowlist में यह मॉडल शामिल नहीं है। |
| 403 | plan_required | permission_error | आपके प्लान में यह मॉडल श्रेणी शामिल नहीं है। |
| 404 | model_not_found | not_found_error | मॉडल id अज्ञात, निष्क्रिय या हटाई गई है। |
| 404 | not_found | not_found_error | अज्ञात endpoint, या ऐसा वीडियो job या generation जो आपका नहीं है। |
| 413 | payload_too_large | invalid_request_error | Request body आकार सीमा (डिफ़ॉल्ट रूप से 25 MB) से बड़ी है। |
| 429 | rate_limited | rate_limit_error | प्रति मिनट requests की सीमा पार हो गई। Retry-After: 60 के साथ आता है। |
| 429 | daily_limit_reached | rate_limit_error | Key अपनी दैनिक USD खर्च सीमा तक पहुँच गई। |
| 409 | idempotency_conflict | api_error | इस Idempotency-Key से अनुरोध पहले ही भेजा जा चुका है। दूसरे अनुरोध के लिए नई कुंजी इस्तेमाल करें। दर सीमाएं. |
| 403 | site_not_allowed | permission_error | केवल विजेट: पेज की साइट आपकी अनुमत विजेट साइटों में नहीं है। विजेट. |
| 429 | widget_daily_limit | rate_limit_error | केवल विजेट: विजेट, या सभी विजेट मिलकर, दैनिक USD खर्च सीमा पर पहुंच गए। |
| 429 | visitor_daily_limit | rate_limit_error | केवल विजेट: यह आगंतुक विजेट नियंत्रण में तय दैनिक अनुरोध सीमा पर पहुंच गया। |
| 502 | upstream_unavailable | api_error | Upstream प्रोवाइडर तक नहीं पहुँचा जा सका। |
| 4xx/502 | content_unavailable | अलग-अलग | वीडियो का content अभी प्राप्त नहीं किया जा सका (status upstream जैसा ही होता है, न हो तो 502)। |
| 503 | maintenance | service_unavailable | Maintenance mode, generation endpoints रुके हुए हैं, GET endpoints अब भी काम करते हैं। |
| 503 | not_configured | service_unavailable | Gateway अभी कॉन्फ़िगर नहीं हुआ है। |
Upstream त्रुटियाँ
Upstream प्रोवाइडर द्वारा लौटाई गई त्रुटियाँ, उदाहरण के लिए किसी खास मॉडल के लिए अमान्य पैरामीटर, context length overflow, content-policy के कारण इनकार, या प्रोवाइडर का अपना 429, अपने मूल status code और उसी { error: {... } } shape के साथ आप तक पहुँचाई जाती हैं।
क्या करें
| Status | दोबारा कोशिश? | कार्रवाई |
|---|---|---|
| 400 | नहीं | Request body ठीक करें। |
| 401 | नहीं | Key और Authorization: Bearer header जाँचें। देखें Authentication। |
| 402 | नहीं | फ़ंड जोड़ें या auto top-up चालू करें। |
| 403 | नहीं | अनुमत मॉडल इस्तेमाल करें, key की allowlist बदलें, या अपना प्लान अपग्रेड करें। |
| 404 | नहीं | मॉडल पेज पर मॉडल id जाँचें। |
| 413 | नहीं | छोटी body भेजें, या फ़ाइलें base64 की जगह URL से भेजें। |
| 429 | बाद में | rate_limited: Retry-After तक रुकें। daily_limit_reached: अगले UTC दिन तक रुकें या key की सीमा बढ़ाएँ। देखें Rate limits। |
| 502 | हाँ | Backoff के साथ दोबारा कोशिश करें, या मॉडल fallbacks जोड़ें। |
| 503 | हाँ | बाद में दोबारा कोशिश करें। |
कोड में त्रुटियाँ संभालना
import OpenAI from 'openai'
const client = new OpenAI({ baseURL: 'https://api14.com/api/v1', apiKey: process.env.API14_API_KEY })
try {
await client.chat.completions.create({ model: 'openai/gpt-5-mini', messages: [{ role: 'user', content: 'Hi' }] })
} catch (err) {
if (err instanceof OpenAI.APIError) {
console.error(err.status, err.code, err.message)
if (err.code === 'insufficient_balance') {
// prompt the user to add funds
}
} else {
throw err
}
}
from openai import OpenAI, APIStatusError
client = OpenAI(base_url="https://api14.com/api/v1", api_key="sk-api14-...")
try:
client.chat.completions.create(model="openai/gpt-5-mini", messages=[{"role": "user", "content": "Hi"}])
except APIStatusError as e:
print(e.status_code, e.code, e.message)
Stream शुरू होने के बाद होने वाली त्रुटियाँ stream के अंदर ही आती हैं। देखें Streaming।