त्रुटियाँ

जब कोई request विफल होता है, तो WEEGLOO एक समान फ़ॉर्मैट वाली error body और HTTP स्टेटस कोड दोनों लौटाता है। response body का स्वरूप इस बात से स्वतंत्र है कि विफलता किस API (CMA, CDA, ACMA, ACDA, Upload, Auth) में हुई थी। इसलिए यदि आप केवल एक ही फ़ॉर्मैट को संभालना जानते हैं, तो आप सभी त्रुटियों को एक ही तरीके से branch करके संभाल सकते हैं। यह पेज उस साझा फ़ॉर्मैट और अक्सर सामने आने वाले error कोड को एक ही जगह संकलित करता है।

Error response का फ़ॉर्मैट

error body का स्वरूप नीचे जैसा होता है। नीचे वह response है जो किसी अनुपस्थित WebHosting को query करने पर मिला।

{
  "requestId": "GeR3sEbvWdgvv9eW2NXeanpj2wo6qbkVXgIW7Qd3ea6",
  "sys": {
    "id": "RxcgyPTSuk4GDy6s",
    "type": "NotFound",
    "code": "WGL404001",
    "timestamp": 1781785683556
  },
  "details": {
    "space": { "sys": { "id": "HnQ32YiH", "type": "Refer", "targetType": "Space" } }
  },
  "reason": "WebHosting(...) has been deleted or does not exist.",
  "suggestion": "Please verify WebHosting and try again."
}

प्रत्येक key का अर्थ इस प्रकार है।

Keyटाइपविवरण
requestIdstringइस request का ट्रैकिंग identifier। support से संपर्क करते समय यह मान भी साथ देने पर संबंधित request तेज़ी से ढूँढी जा सकती है।
sys.typestringत्रुटि का वर्गीकरण। Unauthorized, Forbidden, NotFound, Unprocessable, Conflict, TooManyRequest जैसी बड़ी श्रेणियों को दर्शाता है।
sys.codestringविस्तृत error कोड (उदाहरण: WGL409005)। कोड के स्तर पर branch करते समय इस मान का उपयोग किया जाता है।
sys.timestampintegerत्रुटि होने का समय (epoch millis)।
reasonstringमनुष्य द्वारा पढ़ने योग्य विफलता का कारण।
suggestionstringसमाधान में सहायक संकेत।
detailsobject (वैकल्पिक)अतिरिक्त जानकारी। संबंधित संसाधन की ओर इंगित करने वाला Refer, validation error आइटमों की सूची (errors) आदि इसमें आते हैं। त्रुटि के प्रकार के अनुसार यह अनुपस्थित हो सकता है।

branch करना sys.type (बड़ी श्रेणी) या sys.code (विस्तृत कोड) में से आवश्यक स्तर पर किया जाता है। एक ही sys.type होने पर भी यदि sys.code भिन्न है तो कारण भिन्न होता है, इसलिए सटीक प्रबंधन की आवश्यकता होने पर sys.code के आधार पर देखें।

validation विफल होने पर details.errors में असंगत आइटम रखे जाते हैं। नीचे वह response है जिसमें body में schema में अनुपस्थित किसी property को डालने से validation विफल हुआ।

{
  "requestId": "yJ8KpQ2mWtnLrZ4Xv7BcEadfh3sNuMvKbGT5Pq9wRsx",
  "sys": {
    "id": "Lm2Nq9Tr8KdW4xZc",
    "type": "BadRequest",
    "code": "WGL400006",
    "timestamp": 1781776000000
  },
  "details": {
    "errors": [
      { "path": "", "message": "property 'X' is not defined in the schema", "property": "X" }
    ]
  },
  "reason": "Some values do not satisfy validation rules.",
  "suggestion": "Please check the request body and try again."
}

details.errors का प्रत्येक आइटम असंगत स्थान (path), विवरण (message), और संबंधित property का नाम (property) रखता है। यदि आइटम कई हों, तो प्रत्येक असंगत मान के लिए एक-एक आइटम आता है।

अक्सर सामने आने वाले कोड

नीचे अक्सर सामने आने वाले error कोड हैं।

कोडवर्गीकरणअर्थसामान्य स्थिति
WGL401001Unauthorizedटोकन मान्य नहींAuthorization Bearer टोकन समाप्त हो चुका है या ग़लत है।
WGL403001Forbiddenअनुमति नहींकॉल करने वाले की role उस कार्य की अनुमति नहीं देती। जो request role के कारण नहीं, बल्कि कॉल की जगह के कारण रुका है, वह नीचे दिए WEB403001 के साथ लौटता है।
WEB403001Forbiddenसंसाधन तक पहुँच की अनुमति नहींrequest स्वयं अनधिकृत होने के कारण अस्वीकार कर दिया गया। Delivery Access Token या Space Access Token से कॉल करते समय जो request allowedReferrers की जाँच में रुक जाता है, वह इसी कोड के साथ लौटता है। role में अनुमति न होने के अर्थ वाले WGL403001 से यह भिन्न कोड है।
WGL403012Forbiddenउपयोग सीमा पार होने के कारण सुविधा रोकी गईOrganization का ट्रांसफ़र वॉल्यूम या स्टोरेज उपयोग प्लान की मूल आवंटित मात्रा से अधिक हो जाने पर संबंधित सुविधा रोक दी गई है (उदाहरण: read API, नई Media अपलोड, Web Hosting परिनियोजन)। संख्या-सीमा वाले WGL429001 के विपरीत, यह उपयोग सीमा पार होने पर लगने वाली रोक है। पुनः सक्रिय करने की शर्तों के लिए मूल्य निर्धारण देखें।
WGL404001NotFoundसंसाधन अनुपस्थित या हटाया गयाग़लत sys.id से query किया गया, या ऐसी सुविधा कॉल की गई जो अभी सेट नहीं की गई है (उदाहरण: कस्टम डोमेन न जुड़ा होना)।
WGL400006BadRequestbody का मान validation नियमों के विरुद्धग़लत field key या टाइप के साथ body भेजी गई। असंगत आइटम details.errors में रखे जाते हैं।
WEB400014BadRequestक्रम का field select से छूट गयाorder में उपयोग किया गया field select में नहीं रखा गया। क्रमबद्ध करने में उपयोग होने वाले सभी field select में भी रखने होंगे (साझा Query Parameters देखें)।
WGL409005Conflictसंसाधन इस बीच संशोधित हो गयाX-Weegloo-Version हेडर छूट गया या वर्तमान version से भिन्न है (conventions देखें)।
WGL422007Unprocessablepublished अवस्था के कारण archive नहीं किया जा सकताContent या Media को archive करने के लिए पहले unpublish करना होगा।
WGL422009Unprocessablepublished अवस्था के कारण delete नहीं किया जा सकताpublished Content या Media को delete करने के लिए पहले unpublish करना होगा।
WGL429001TooManyRequestप्लान की सीमा पारOrganization, Space आदि संसाधन के निर्माण की संख्या वर्तमान प्लान की सीमा से अधिक हो गई। प्लान बढ़ाने पर सीमा भी बढ़ जाती है।

ऊपर दिए कोड अक्सर सामने आने वाले कुछ कोड हैं। इनके अलावा कार्य और संसाधन के अनुसार और भी कई कोड हो सकते हैं। आपको कोई भी कोड मिले, sys.type से बड़ी श्रेणी समझें, और reason और suggestion से ठोस कारण तथा समाधान की दिशा पुष्टि करें।

  • conventions: WGL409005 से बचने के लिए X-Weegloo-Version concurrency नियम।
  • सिस्टम प्रॉपर्टीज़ (sys): published अवस्था (status) और WGL422007, WGL422009 जिस lifecycle की ओर इंगित करते हैं।
  • मूल्य निर्धारण: WGL403012 (उपयोग सीमा पार होने की रोक) और WGL429001 (संख्या सीमा) के प्रति-प्लान मानदंड और उन्हें हटाने की विधि।