Sign inGet Started

त्रुटि प्रतिक्रियाएँ

हर विफल अनुरोध एक ही JSON एनवेलप लौटाता है, जो एक शीर्ष-स्तरीय error कुंजी के अंतर्गत होता है और जिसमें एक HTTP स्टेटस मोटी श्रेणी बताता है। यह पेज वायर कॉन्ट्रैक्ट है; ब्रांचिंग, फिर से प्रयास, और कोड कैटलॉग दर्शन के मार्गदर्शन के लिए त्रुटियाँ देखें।
कोड उदाहरण
{
  "error": {
    "type": "validation_error",
    "code": "E01001",
    "name": "ValidationError",
    "message": "Request validation failed.",
    "doc_url": "https://bird.com/docs/api/errors/E01001",
    "request_id": "req_01krdgeqcxet5s7t44vh8rt9mg",
    "details": [
      { "param": "contact_id", "message": "this field is reserved and not yet supported" },
      { "param": "topic_id", "message": "this field is reserved and not yet supported" }
    ]
  }
}

एनवेलप फ़ील्ड

फ़ील्डहमेशा मौजूदविवरण
typeहाँमोटी ब्रांचिंग के लिए व्यापक श्रेणी: एक बंद enum (auth_error, validation_error, rate_limit_error, ...)।
codeहाँE\d{5} से मेल खाने वाला अपारदर्शी, स्थिर पहचानकर्ता। अद्वितीय, कभी नाम नहीं बदला जाता, कभी पुन: उपयोग नहीं होता; मिलान के लिए यही मानक है।
nameहाँलॉग पठनीयता के लिए मानव-पठनीय स्लग (ValidationError)। हमेशा code के साथ जोड़ा जाता है, कभी इसका विकल्प नहीं।
messageहाँमानव-पठनीय विवरण। स्थिर नहीं; इसे प्रदर्शित या लॉग करें, कभी पार्स न करें।
doc_urlहाँइस code के दस्तावेज़ पेज का स्थिर लिंक।
request_idहाँसहसंबंध ID, जो X-Request-Id रिस्पॉन्स हेडर के रूप में भी लौटाया जाता है। सपोर्ट अनुरोधों में इसे उद्धृत करें।
paramनहींदोषी फ़ील्ड, जब कोई एक फ़ील्ड गलत हो।
detailsनहीं{param, message} ऑब्जेक्ट के रूप में प्रति-फ़ील्ड वैलिडेशन विफलताएँ, जहाँ param एक डॉटेड पथ है जैसे to[0].email। केवल validation_error प्रतिक्रियाओं पर मौजूद।
vendor_codeनहींडाउनस्ट्रीम सिस्टम से यथावत कोड (एक SMTP रिप्लाई कोड, एक पेमेंट डिक्लाइन कोड) जब उस पर कार्रवाई करना उचित हो।

HTTP स्टेटस मैपिंग

प्रत्येक type ठीक एक HTTP स्टेटस से मैप होता है, इसलिए स्टेटस और एनवेलप कभी असहमत नहीं होते।
स्टेटसtypeअर्थ
400bad_request_errorअनुरोध विकृत था: एक अपार्स करने योग्य बॉडी या एक अमान्य हेडर (उदाहरण के लिए, एक खराब Idempotency-Key)।
401auth_errorअनुरोध में अनुपस्थित, अमान्य, या निरस्त क्रेडेंशियल थे। प्रमाणीकरण देखें।
402billing_errorअनुरोध के लिए एक भुगतान विधि, शेष, या योजना आवश्यक है जो संगठन के पास नहीं है। बिलिंग और उपयोग देखें।
403permission_errorक्रेडेंशियल मान्य हैं, लेकिन इस अनुरोध को करने की अनुमति नहीं है। प्रमाणीकरण देखें।
404not_found_errorइस पथ से कोई रूट मेल नहीं खाता, या संसाधन इस वर्कस्पेस में मौजूद नहीं है। क्षेत्र देखें।
409conflict_errorअनुरोध संसाधन की वर्तमान स्थिति से विरोध करता है, जिसमें आइडेम्पोटेंसी विरोध (E01004, E01005) शामिल हैं। आइडेम्पोटेंसी देखें।
410gone_errorसंसाधन मौजूद था लेकिन स्थायी रूप से हटा दिया गया है।
412precondition_errorइस अनुरोध की कोई पूर्व शर्त पूरी नहीं हुई।
413payload_too_large_errorअनुरोध बॉडी अधिकतम अनुमत आकार से अधिक है।
421misdirected_errorअनुरोध ऐसे क्षेत्र तक पहुँचा जो इसे सर्व नहीं कर सकता। क्षेत्र देखें।
422delivery_errorसंदेश अनुरोध के रूप में स्वीकार किया गया लेकिन दिए गए पते पर डिलीवर नहीं किया जा सकता।
422validation_errorअनुरोध बॉडी पार्स हो गई, लेकिन एक या अधिक मान अमान्य हैं।
425too_early_errorअनुरोध प्रोसेस किए जाने से पहले पहुँच गया।
429rate_limit_errorइस वर्कस्पेस के लिए एक दर-सीमा समूह समाप्त हो गया है। दर सीमाएँ देखें।
499client_closed_request_errorप्रतिक्रिया तैयार होने से पहले कनेक्शन बंद हो गया, आमतौर पर इसलिए कि कॉलर ने प्रतीक्षा करना बंद कर दिया।
500internal_errorअनुरोध को प्रोसेस करते समय हमारी तरफ़ कुछ विफल हो गया। देखें Idempotency।
501not_implemented_errorयह endpoint API में घोषित है लेकिन अभी तक लागू नहीं किया गया है।
503service_unavailable_errorइस अनुरोध की कोई निर्भरता अस्थायी रूप से अनुपलब्ध है।

SDK में त्रुटियों को हैंडल करना

प्रत्येक SDK एनवेलप को अपनी भाषा के नेटिव एरर मॉडल पर मैप करता है और हर एनवेलप फ़ील्ड (type, code, message, doc_url, request_id, ...) एरर वैल्यू पर रखता है।
import { BirdRateLimitError, BirdValidationError, BirdAPIError } from "@messagebird/sdk";

try {
  await bird.email.send({
    from: { email: "onboarding@messagebird.dev", name: "Bird" },
    to: ["delivered@messagebird.dev"],
    subject: "Hello from Bird",
    html: "<p>My first Bird email.</p>",
  });
} catch (err) {
  if (err instanceof BirdRateLimitError) console.log(`rate limited; retry in ${err.retryAfter}s`);
  else if (err instanceof BirdValidationError) console.error(err.details);
  else if (err instanceof BirdAPIError) console.error(err.code, err.requestId);
  else throw err;
}

त्रुटि कैटलॉग

सार्वजनिक Bird API द्वारा लौटाया जाने वाला प्रत्येक एरर कोड, प्रति कोड रेंज एक पेज में विभाजित। प्रत्येक रेंज पेज अपने कोड सूचीबद्ध करता है, और प्रत्येक कोड का अपना पेज है जिसमें कारण और समाधान दिया गया है। किसी भी त्रुटि प्रतिक्रिया पर doc_url सीधे उस कोड के पेज से लिंक करता है।
रेंजक्षेत्रकोड
E01xxxइंफ्रास्ट्रक्चर30 कोड, 2 सेवानिवृत्त
E02xxxAuth और पहचान9 कोड, 2 सेवानिवृत्त
E03xxxबिलिंग और योजनाएँ12 कोड
E04xxxईमेल भेजना और डिलीवरी67 कोड, 3 सेवानिवृत्त
E05xxxडोमेन और DNS19 कोड
E06xxxWebhooks7 कोड
E07xxxWallet4 कोड
E10xxxकोटा9 कोड, 2 सेवानिवृत्त
E11xxxIP पूल और डेडिकेटेड IP4 कोड, 1 सेवानिवृत्त
E12xxxSMS भेजना और डिलीवरी49 कोड, 5 सेवानिवृत्त
E13xxxVerify7 कोड, 1 सेवानिवृत्त
E14xxxनंबर5 कोड
E15xxxWhatsApp भेजना और डिलीवरी49 कोड
E16xxxTrust1 कोड
E17xxxएजेंट मेलबॉक्स14 कोड, 2 सेवानिवृत्त
E19xxxपंजीकरण अनुपालन4 कोड
E21xxxवॉइस और SIP ट्रंकिंग16 कोड, 7 सेवानिवृत्त
E22xxxनंबर लुकअप4 कोड
E23xxxRealtime1 कोड
E24xxxCompetitive Insights6 कोड
E25xxxSendability5 कोड, 1 सेवानिवृत्त
E27xxxInbox Insights5 कोड
E28xxxApple Messages for Business18 कोड, 2 सेवानिवृत्त
E32xxxऑपरेशन पुष्टि6 कोड

संबंधित

संबंधित संसाधन

इस विषय के लिए डॉक्यूमेंटेशन, गाइड और उदाहरणों के साथ आगे बढ़ें। संसाधन अंग्रेज़ी में हैं।

इम्प्लीमेंटेशन ब्रीफ़ पाएँ