बग रिपोर्ट करने से पहले
ज़्यादातर "bugs" configuration समस्याएं हैं जिन्हें आप 60 सेकंड में ठीक कर सकते हैं — पहले इस चेकलिस्ट से गुज़रें।
यदि कुछ काम नहीं करता, तो यह पता लगाने का सबसे तेज़ तरीका कि गड़बड़ी आपकी तरफ है या हमारी — उसी अनुरोध को किसी दूसरे टूल से चलाएं।
लगभग 10 में से 9 "API टूटा हुआ है" रिपोर्ट में असली वजह होती है — गलत base URL, पुराना API key, गलत model का नाम, या किसी ऐसे tutorial का request body जो तीन SDK versions पुराना है।
त्वरित स्व-परीक्षण
इस curl कमांड को टर्मिनल में कॉपी करें। YOUR_KEY की जगह Dashboard से अपना API key डालें और चलाएं। अगर सामान्य completion वापस आती है, तो आपका API key, नेटवर्क और हमारा backend — सब ठीक हैं — कोई भी गड़बड़ी आपके client code या environment में है।
cURL
curl https://api.airforce/v1/chat/completions \
-H "Authorization: Bearer sk-air-YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4.1-mini",
"messages": [{"role": "user", "content": "ping"}]
}'चरण-दर-चरण चेकलिस्ट
क्या आपका API key मान्य है?
Dashboard → API Keys खोलें और पुष्टि करें कि key आपके code में उपयोग होने वाली key से मेल खाती है। एक सामान्य गलती है — copy-paste से "sk-air-" prefix से पहले whitespace आ जाना।
लक्षण: 401 Unauthorized।
क्या base URL सही है?
base URL https://api.airforce/v1 होनी चाहिए — http नहीं, और /v1 suffix ज़रूरी है। OpenAI के v1 path से पुराने tutorials में यह छूट जाता है।
लक्षण: 404 Not Found, या curl रुक जाता है।
क्या model का नाम सही लिखा है?
Model IDs case-sensitive हैं। सटीक ID की पुष्टि के लिए Models page पर जाएं या GET /v1/models call करें। typo या deprecated model एक साफ error देता है न कि "काम कर रहा है लेकिन गलत"।
लक्षण: 400 unknown_model या 404 model_not_found।
क्या request body का shape सही है?
Chat completions messages array उपयोग करती हैं। Images prompt + n उपयोग करती हैं। Audio TTS input + voice उपयोग करता है। /v1/images/generations को chat-shaped body भेजने पर 400 मिलता है — यह गलती snippets को docs के बीच copy करते समय आसानी से हो जाती है।
लक्षण: 400 के साथ response body में अपराधी field का नाम।
क्या आप rate limit या quota cap तक पहुँच गए हैं?
429 = इस मिनट बहुत अधिक अनुरोध। 402 = आपका plan या balance समाप्त हो गया। दोनों Dashboard पर दिखते हैं। Free-tier अनुरोधों की अलग cap होती है paid-plan अनुरोधों से, इसलिए paid model ठीक से जवाब दे सकता है जबकि free model rate-limit हो।
लक्षण: 429 Too Many Requests या 402 Payment Required।
क्या model अभी वास्तव में चालू है?
Models page जाँचें — provider outages "degraded" या "major outage" के रूप में दिखते हैं। अगर एक model down है जबकि अन्य काम कर रहे हैं, तो यह provider-side समस्या है जिसे हम route around करते हैं — client की गलती नहीं।
लक्षण: एक specific model 5xx देता है जबकि अन्य काम करते हैं।
HTTP Status Codes का अर्थ
हर error response एक मानक HTTP status code लेकर आती है। हर एक का अर्थ जानने से एक टिकट की बचत होती है।
| 400 | आपकी तरफ | Bad Request — गलत JSON, ज़रूरी field नहीं है, अज्ञात parameter। request body ठीक करें। |
| 401 | आपकी तरफ | Unauthorized — API key नहीं है या अमान्य है। जाँचें कि Authorization header में "Bearer " prefix शामिल है। |
| 402 | आपकी तरफ | Payment Required — plan समाप्त हो गया या Pay-as-you-go balance खाली है। Subscribe करें या टॉप अप करें। |
| 403 | आपकी तरफ | Forbidden — आपके plan या per-key permission से यह model या endpoint अनुमत नहीं है। |
| 404 | आपकी तरफ | Not Found — अज्ञात endpoint या model ID। URL path और model की spelling जाँचें। |
| 413 | आपकी तरफ | Payload Too Large — input model की context window से अधिक है। prompt छोटा करें। |
| 429 | आपकी तरफ | Too Many Requests — rate-limited (RPM, RPD, या दैनिक token cap)। धीमे करें या upgrade करें। |
| 500 | हमारी तरफ | Internal Server Error — हमारी तरफ एक बग है। अगर एक मिनट से अधिक बना रहे तो रिपोर्ट करें। |
| 502 | हमारी तरफ | Bad Gateway — backend mid-restart में है (हम दिन में कुछ बार deploy करते हैं)। 5–10 सेकंड प्रतीक्षा करें और पुनः प्रयास करें। |
| 503 | हमारी तरफ | Service Unavailable — उस model के लिए हर upstream provider एक साथ विफल हो गया। अगर कुछ मिनटों से अधिक रहे तो रिपोर्ट करें। |
जब यह वास्तव में एक बग हो
अगर ऊपर दिया curl self-test काम करता है लेकिन आपके code से वही अनुरोध नहीं — तो समस्या आपके client (या उसकी library) में है। अगर self-test खुद 5xx के साथ विफल होता है, या ऐसे 4xx के साथ लौटता है जो आपके अनुरोध से मेल नहीं खाता — तो यह रिपोर्ट करने लायक है।
प्रभावी ढंग से रिपोर्ट कैसे करें
Dashboard से सपोर्ट टिकट खोलें या Discord पर #support में पोस्ट करें। इसमें शामिल करें:
- पूरा HTTP status code और response body (यदि मौजूद हो तो cf-ray response header भी)।
- UTC में अनुमानित टाइमस्टैम्प।
- Model का नाम और कौन-सा endpoint आपने call किया।
- एक minimal cURL जो इसे reproduce करे (अपना असली API key छुपाएं!)।
- क्या उसी key पर आपके लिए ऊपर का self-test काम करता है।
सेटअप में अटक गए या मुफ़्त की चाहिए? हमारे Discord पर समुदाय से पूछें।
हमारे Discord से जुड़ें