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हाँमोटी ब्रांचिंग के लिए व्यापक श्रेणी: एक बंद एनम (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अनुरोध को प्रोसेस करते समय हमारी तरफ़ कुछ विफल हो गया। आइडेम्पोटेंसी देखें।
501not_implemented_errorयह एंडपॉइंट 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 सेवानिवृत्त
E02xxxप्रमाणीकरण और पहचान24 कोड, 2 सेवानिवृत्त
E03xxxबिलिंग और प्लान15 कोड, 2 सेवानिवृत्त
E04xxxईमेल भेजना और डिलीवरी87 कोड, 3 सेवानिवृत्त
E05xxxडोमेन और DNS19 कोड
E06xxxवेबहुक11 कोड
E07xxxवॉलेट4 कोड
E08xxxवर्कस्पेस और संगठन प्रबंधन1 कोड, 2 सेवानिवृत्त
E10xxxकोटा16 कोड, 2 सेवानिवृत्त
E11xxxIP पूल और डेडिकेटेड IP4 कोड, 1 सेवानिवृत्त
E12xxxSMS भेजना और डिलीवरी62 कोड, 5 सेवानिवृत्त
E13xxxVerify7 कोड, 1 सेवानिवृत्त
E14xxxनंबर6 कोड
E15xxxWhatsApp भेजना और डिलीवरी75 कोड
E16xxxभरोसा1 कोड
E17xxxएजेंट मेलबॉक्स16 कोड, 2 सेवानिवृत्त
E19xxxपंजीकरण अनुपालन6 कोड
E20xxxएसेट और मीडिया लाइब्रेरी15 कोड
E21xxxवॉइस और SIP ट्रंकिंग20 कोड, 9 सेवानिवृत्त
E22xxxनंबर लुकअप5 कोड
E23xxxरीयलटाइम1 कोड
E24xxxCompetitive Insights6 कोड
E25xxxSendability5 कोड, 1 सेवानिवृत्त
E26xxxeSIM19 कोड
E27xxxInbox Insights9 कोड
E28xxxApple Messages for Business48 कोड, 2 सेवानिवृत्त
E32xxxऑपरेशन पुष्टि6 कोड
E33xxxसंगठन पात्रता3 कोड, 1 सेवानिवृत्त
E34xxxकनेक्टर्स1 कोड, 1 सेवानिवृत्त

संबंधित

इस विषय के लिए दस्तावेज़, गाइड और उदाहरणों के साथ आगे बढ़ें।