DAT
दस्तावेज़

त्रुटि कोड

DAT द्वारा आधिकारिक रूप से समर्थित क्लाइंट लाइब्रेरियों के साझा त्रुटि कोड।

प्रत्येक कोड के साथ प्रभाव और पुनः प्रयास दो मान जुड़े होते हैं, और कुछ पर अतिरिक्त रूप से संदेह का लेबल लगता है।

प्रभाव — सेवा को कितनी क्षति

यह अलर्ट लगाने की कसौटी है। केवल एक बात देखी जाती है: "क्या सेवा अभी रुकी हुई है"।

प्रभावअर्थउदाहरण
गंभीरसेवा या कोई विशिष्ट फ़ंक्शन रुक जाता है। जारी करना असंभव, सिंक स्थायी रूप से विफल, आरंभीकरण विफलजारी करने वाले सर्वर पर एक भी उपयोग योग्य प्रमाणपत्र नहीं
आंशिककुछ अनुरोध या चक्र विफल होते हैं, पर सेवा चलती रहती है। आमतौर पर स्वयं ठीक हो जाती हैCMS का एक चक्र विफल। मौजूदा प्रमाणपत्रों से काम जारी
प्रभाव नहींएक अनुरोध अस्वीकार हुआ, बस इतना हीछेड़छाड़ किया गया टोकन आया। छानकर हटा दिया

प्रभाव नहीं अलर्ट का विषय नहीं है। यदि एक बार आए गलत इनपुट की जाँच पूरी टीम को करनी पड़े, तो अलर्ट का अर्थ ही समाप्त हो जाता है।

संदेह — लगातार हो तो जाँच करें

संदेह लेबल वाले कोड एक बार होने पर सामान्य संचालन का ही हिस्सा हैं। क्लाइंट कभी भी गलत मान भेज सकता है, और उसे छानना लाइब्रेरी का अपना काम है।

लेकिन यदि ऐसी त्रुटियाँ लगातार, या किसी विशेष स्रोत से एक साथ बड़ी संख्या में आएँ, तो कारण दो में से एक है।

  • कॉन्फ़िगरेशन की गड़बड़ी — डिप्लॉयमेंट गलत है, पुराने संस्करण का क्लाइंट बचा हुआ है, या प्रमाणपत्र आपस में मेल नहीं खा रहे।
  • हैकिंग का प्रयास — सत्यापन पास कराने के लिए टोकन या कुंजी से छेड़छाड़, अथवा वैध मान खोजने के लिए टोह लेना।

इसीलिए इन कोडों को संख्या के आधार पर मेट्रिक बनाकर रखना उचित है। सीमा पार होने पर ही सूचित करना पर्याप्त है।

पुनः प्रयास

पुनः प्रयासअर्थ
अस्थायीबैकऑफ़ के बाद पुनः प्रयास करने पर हल हो जाता है
स्थायीपुनः प्रयास वर्जित। कॉन्फ़िगरेशन या इनपुट ठीक करना होगा
स्थितियह त्रुटि नहीं, एक संकेत है

टोकन

प्राप्त टोकन स्ट्रिंग की स्वयं की समस्याएँ।

DAT_TOKEN_MALFORMEDप्रभाव नहींस्थायीshieldसंदेह

बिंदु से अलग किए गए भाग पाँच नहीं हैं; या expire शुद्ध दशमलव नहीं है; या cid शुद्ध षोडश आधारी नहीं है; या plain·secure base64url नहीं है; या संख्यात्मक फ़ील्ड पूर्णांक प्रतिनिधित्व की सीमा पार कर गया।

arrow_forwardअनुरोध अस्वीकार करें

DAT_TOKEN_EXPIREDप्रभाव नहींस्थायी

expire <= now. ठीक उसी क्षण भी समाप्तexpire == now होने पर टोकन को समाप्त ही माना जाता है।

arrow_forwardटोकन पुनः जारी कराएँ

DAT_TOKEN_UNKNOWNआंशिकस्थायी

ऊपर की किसी भी श्रेणी में न आने वाली टोकन त्रुटि।

arrow_forwardलॉग जाँचें

समाप्ति और प्रारूप त्रुटि अनिवार्य रूप से अलग हैं

प्रतिक्रिया बिल्कुल विपरीत है — समाप्ति जीवनकाल का सामान्य अंत है, इसलिए टोकन नवीनीकृत करा देना पर्याप्त है; जबकि प्रारूप त्रुटि का अर्थ है कि टोकन मूलतः जारी ही नहीं किया गया, इसलिए उसे अस्वीकार करना चाहिए।

पार्सिंग पहले संरचना तय करती है, उसके बाद ही मान देखती है। "1.2.3" जैसी कम भागों वाली स्ट्रिंग समाप्त हुआ टोकन नहीं बल्कि टोकन है ही नहीं, इसलिए DAT_TOKEN_MALFORMED है।

expire फ़ील्ड में +100 जैसा चिह्न लगा होना भी समाप्ति नहीं बल्कि प्रारूप त्रुटि है। केवल शुद्ध ASCII अंक ही मान्य हैं।


प्रमाणपत्र

प्रमाणपत्र स्ट्रिंग के प्रारूप की, और यह कि वह प्रमाणपत्र अभी उपयोग किया जा सकता है या नहीं, इसकी समस्याएँ।

DAT_CERT_MALFORMEDगंभीरस्थायी

बिंदु से अलग किए गए भाग आठ नहीं हैं; या cid·start·duration·ttl की पार्सिंग विफल रही; या कुंजी फ़ील्ड base64url नहीं है; या start + duration + ttl u64 से आगे निकल गया।

arrow_forwardप्रमाणपत्र पुनः डिप्लॉय करें

DAT_CERT_EXPIREDगंभीरस्थायी

start + duration + ttl < now. पूर्ण रूप से समाप्त स्थिति: न जारी करना संभव है, न सत्यापन।

arrow_forwardप्रमाणपत्र नवीनीकृत करें

DAT_CERT_NOT_YET_ISSUABLEगंभीरअस्थायी

now < start. जारी करने की विंडो अभी खुली नहीं है।

arrow_forwardप्रतीक्षा करें

DAT_CERT_ISSUANCE_ENDEDगंभीरस्थायी

now > start + duration है पर ttl अभी बचा है। जारी करना संभव नहीं, केवल सत्यापन हो सकता है।

arrow_forwardनया प्रमाणपत्र डिप्लॉय करें

DAT_CERT_VERIFY_ONLYगंभीरस्थायी

हस्ताक्षर की निजी कुंजी के बिना केवल सार्वजनिक कुंजी वाला प्रमाणपत्र है। सत्यापन होता है, जारी करना असंभव है।

arrow_forwardडिप्लॉय सेटिंग जाँचें

DAT_CERT_NOT_FOUNDप्रभाव नहींस्थायीshieldसंदेह

टोकन के cid से मेल खाने वाला प्रमाणपत्र मौजूद नहीं है। यह जाली टोकन है या गलत डिप्लॉयमेंट।

arrow_forwardअनुरोध अस्वीकार करें

DAT_CERT_NOT_SYNCEDआंशिकअस्थायी

वह cid अभी तक CMS से प्राप्त नहीं हुआ। नया प्रमाणपत्र डिप्लॉय करने के तुरंत बाद थोड़े समय के लिए होता है।

arrow_forwardसिंक के बाद पुनः प्रयास करें

DAT_CERT_DUPLICATE_CIDगंभीरस्थायी

आयात की जा रही सूची में एक ही cid दो या अधिक बार है।

arrow_forwardसर्वर प्रतिक्रिया जाँचें

DAT_CERT_UNKNOWNआंशिकस्थायी

ऊपर की किसी भी श्रेणी में न आने वाली प्रमाणपत्र त्रुटि।

arrow_forwardलॉग जाँचें

DAT_CERT_NOT_FOUND और DAT_CERT_NOT_SYNCED के लक्षण देखने में एक जैसे हैं, पर प्रतिक्रिया अलग है। पहला ऐसा cid है जो कभी जारी ही नहीं हुआ, इसलिए प्रतीक्षा से नहीं बनेगा; दूसरा सिंक होते ही हल हो जाता है।

DAT_CERT_NOT_FOUND एक बार आए तो बस छान देना पर्याप्त है, पर अचानक बढ़ जाए तो इसका अर्थ है कि डिप्लॉयमेंट बेमेल है या जाली टोकन घूम रहे हैं।


हस्ताक्षर

DAT_SIG_MISMATCHप्रभाव नहींस्थायीshieldसंदेह

हस्ताक्षर सत्यापन बेमेल के साथ समाप्त हुआ। HMAC मान भिन्न है या ECDSA verify ने false लौटाया।

arrow_forwardसत्र अवरुद्ध करें, सुरक्षा लॉग

DAT_SIG_MALFORMEDप्रभाव नहींस्थायीshieldसंदेह

हस्ताक्षर वाला भाग खाली है; या base64url नहीं है; या ECDSA r‖s की लंबाई वक्र से मेल नहीं खाती; या DER रूपांतरण विफल रहा।

arrow_forwardअनुरोध अस्वीकार करें

DAT_SIG_KEY_MISSINGगंभीरस्थायी

verify-only कुंजी से हस्ताक्षर करने का प्रयास किया गया। रनटाइम में निजी कुंजी उपलब्ध नहीं है।

arrow_forwardजारीकर्ता सर्वर सेटिंग जाँचें

DAT_SIG_BACKENDआंशिकस्थायी

हस्ताक्षर या सत्यापन की संक्रिया स्वयं चल ही नहीं सकी। गलत कुंजी प्रकार, मुक्त किया जा चुका हैंडल, या क्रिप्टो लाइब्रेरी की आंतरिक त्रुटि।

arrow_forwardकुंजी प्रकार और लाइब्रेरी जाँचें

DAT_SIG_UNKNOWNआंशिकस्थायी

ऊपर की किसी भी श्रेणी में न आने वाली हस्ताक्षर त्रुटि।

arrow_forwardलॉग जाँचें

बेमेल और बैकएंड विफलता को न मिलाएँ

इन दोनों कोडों की धुरी बिल्कुल विपरीत है।

  • DAT_SIG_MISMATCH — आया हुआ हस्ताक्षर बस मेल नहीं खाया, इसलिए सेवा पर कोई प्रभाव नहीं, पर लगातार होने पर यह संदेह का विषय है।
  • DAT_SIG_BACKEND — सत्यापन की संक्रिया स्वयं नहीं चल सकी, अर्थात यह लाइब्रेरी की ओर की समस्या है, संदेह का विषय नहीं।

गलत कुंजी प्रकार या लाइब्रेरी बग को "हस्ताक्षर बेमेल" के रूप में रिपोर्ट करें, तो वास्तव में कोड टूटा होने की स्थिति हमले के मेट्रिक में जा मिलेगी। इसके उलट, असली जालसाज़ी को बैकएंड त्रुटि में वर्गीकृत करें, तो वह संदेह के मेट्रिक से पूरी तरह बाहर हो जाएगी।


एन्क्रिप्शन

secure पेलोड के एन्क्रिप्शन और डिक्रिप्शन की समस्याएँ।

DAT_CRYPTO_TAG_MISMATCHप्रभाव नहींस्थायीshieldसंदेह

AES-GCM प्रमाणीकरण टैग मेल नहीं खाता। या तो secure से छेड़छाड़ हुई है, या प्रमाणपत्र की कुंजी अलग है।

arrow_forwardसत्र अवरुद्ध करें, सुरक्षा लॉग

DAT_CRYPTO_DATA_INVALIDप्रभाव नहींस्थायीshieldसंदेह

सिफरटेक्स्ट खाली नहीं है पर IV (12 बाइट) से कम या बराबर है; या इनपुट कार्यान्वयन की सीमा (INT_MAX आदि) पार कर गया।

arrow_forwardअनुरोध अस्वीकार करें

DAT_CRYPTO_BACKENDआंशिकस्थायी

एन्क्रिप्शन या डिक्रिप्शन की संक्रिया चल नहीं सकी। GCM समर्थन रहित प्लेटफ़ॉर्म, या कॉन्टेक्स्ट आरंभीकरण विफल।

arrow_forwardप्लेटफ़ॉर्म समर्थन जाँचें

DAT_CRYPTO_UNKNOWNआंशिकस्थायी

ऊपर की किसी भी श्रेणी में न आने वाली एन्क्रिप्शन-डिक्रिप्शन त्रुटि।

arrow_forwardलॉग जाँचें

खाली secure पेलोड त्रुटि नहीं है। खाली इनपुट से खाली आउटपुट बनता है और कोई कोड उत्पन्न नहीं होता।

जिस मार्ग में हस्ताक्षर सत्यापन छोड़ दिया जाता है, वहाँ GCM टैग ही एकमात्र अखंडता जाँच है। इसीलिए DAT_CRYPTO_TAG_MISMATCH को अन्य डिक्रिप्शन विफलताओं के साथ एक ही कोड में नहीं बाँधा जाता।


कुंजी

DAT_KEY_INVALIDप्रभाव नहींस्थायीshieldसंदेह

घोषित एल्गोरिदम और कुंजी की लंबाई बेमेल है (HMAC 32/48/64, AES 16/32); या बिंदु वक्र पर नहीं है; या d ∉ [1,n-1]; या प्रारूप असंपीड़ित (0x04) नहीं है; या निजी और सार्वजनिक कुंजी आपस में जोड़ा नहीं हैं।

arrow_forwardकुंजी बदलें

DAT_KEY_VERIFY_ONLY_UNSUPPORTEDगंभीरस्थायी

HMAC श्रेणी के लिए verify-only निर्यात का अनुरोध किया गया।

arrow_forwardएल्गोरिदम बदलें

DAT_KEY_UNKNOWNआंशिकस्थायी

ऊपर की किसी भी श्रेणी में न आने वाली कुंजी त्रुटि।

arrow_forwardलॉग जाँचें

दिखने में समान पर भिन्न तीन बातें:

कोडअर्थ
DAT_KEY_VERIFY_ONLY_UNSUPPORTEDएल्गोरिदम की संरचनात्मक सीमा। HMAC सममित है, इसलिए उसमें सार्वजनिक कुंजी की अवधारणा ही नहीं है
DAT_SIG_KEY_MISSINGरनटाइम की स्थिति। इस कुंजी में अभी निजी भाग मौजूद नहीं है
DAT_CERT_VERIFY_ONLYडिप्लॉयमेंट का स्वरूप। यह प्रमाणपत्र केवल सत्यापन के लिए डिप्लॉय किया गया है

मैनेजर

प्रमाणपत्र रखने और उन्हें जारी करने तथा सत्यापन में उपयोग करने वाले ऑब्जेक्ट की स्थिति।

DAT_MANAGER_NO_CERTIFICATEगंभीरअस्थायी

एक भी प्रमाणपत्र मौजूद नहीं है। या तो आयात से पहले की स्थिति है, या CMS के साथ पहली सिंक विफल रही।

arrow_forwardCMS कनेक्शन जाँचें

DAT_MANAGER_NO_ISSUABLE_CERTIFICATEगंभीरस्थायी

प्रमाणपत्र तो हैं, पर अभी जारी करने योग्य एक भी नहीं है। कारण साथ में भेजा जाता है।

arrow_forwardकारण (cause) देखकर निर्णय लें — नीचे तालिका

DAT_MANAGER_DISPOSEDगंभीरस्थायी

पहले ही मुक्त किए जा चुके मैनेजर या प्रमाणपत्र का उपयोग किया गया।

arrow_forwardकॉलिंग कोड सुधारें

DAT_MANAGER_UNKNOWNआंशिकस्थायी

ऊपर की किसी भी श्रेणी में न आने वाली मैनेजर त्रुटि।

arrow_forwardलॉग जाँचें

DAT_MANAGER_NO_ISSUABLE_CERTIFICATE का कारण (cause) चार में से एक होता है। हर कारण के लिए करने योग्य काम बिल्कुल अलग है।

कारणअर्थपुनः प्रयासकार्रवाई
DAT_CERT_NOT_YET_ISSUABLEजारी करने की विंडो शुरू होने से पहलेअस्थायीप्रतीक्षा करने पर स्वयं हल हो जाता है
DAT_CERT_ISSUANCE_ENDEDजारी करने की विंडो समाप्त, केवल सत्यापन संभवस्थायीनया प्रमाणपत्र डिप्लॉय करना होगा
DAT_CERT_EXPIREDउपलब्ध सभी समाप्त हो चुकेस्थायीप्रमाणपत्र नवीनीकरण आवश्यक है
DAT_CERT_VERIFY_ONLYउपलब्ध सभी केवल सत्यापन के लिए हैंस्थायीडिप्लॉय सेटिंग की गलती है

यदि जारी करने वाला सर्वर केवल सत्यापन प्रमाणपत्र लेने के लिए कॉन्फ़िगर हो, तो DAT_CERT_VERIFY_ONLY आता है। प्रतीक्षा से यह कभी हल नहीं होगा, इसलिए पुनः प्रयास का विषय नहीं है।


कॉन्फ़िगरेशन

कॉल करने वाले द्वारा दिए गए मानों की समस्याएँ। CONFIG श्रेणी के सभी कोड कोड सुधारने योग्य त्रुटियाँ हैं; यदि ये संचालन के दौरान आएँ तो डिप्लॉयमेंट गलत है।

DAT_CONFIG_ALG_UNSUPPORTEDगंभीरस्थायी

अज्ञात एल्गोरिदम नाम। प्रोटोकॉल में लिखे रूप (ECDSA-P256, IV-AES256-GCM) से ठीक-ठीक मेल खाना चाहिए।

arrow_forwardएल्गोरिदम का नाम जाँचें

DAT_CONFIG_ARGUMENT_INVALIDगंभीरस्थायी

आवश्यक आर्ग्युमेंट null है; या अनुमत सीमा से बाहर है (ऋणात्मक समय मान, interval <= 0); या असमर्थित प्रकार है (डायनामिक टाइप भाषाओं में payload में संख्या या बूलियन दिया गया); या हस्ताक्षर किया जाने वाला body खाली है।

arrow_forwardकॉलिंग कोड सुधारें

DAT_CONFIG_URI_INVALIDगंभीरस्थायी

CMS सर्वर का URI विनिर्देश से बाहर है: पार्स नहीं हो रहा, स्कीम http/https नहीं है, या उसमें पथ या क्वेरी जुड़ी है।

arrow_forwardURI सुधारें

DAT_CONFIG_UNKNOWNगंभीरस्थायी

ऊपर की किसी भी श्रेणी में न आने वाली कॉन्फ़िगरेशन त्रुटि।

arrow_forwardलॉग जाँचें


आंतरिक

निष्पादन परिवेश और रनटाइम की समस्याएँ।

DAT_INTERNAL_UNAVAILABLEगंभीरस्थायी

क्रिप्टो बैकएंड या रनटाइम API बिल्कुल ही उपलब्ध नहीं है। crypto.subtle अनुपस्थित, AES-GCM समर्थन रहित प्लेटफ़ॉर्म, या रनटाइम संस्करण आवश्यकता से कम।

arrow_forwardडिप्लॉयमेंट और प्लेटफ़ॉर्म जाँचें

DAT_INTERNAL_UNKNOWNगंभीरस्थायी

मेमोरी आवंटन विफल, यादृच्छिक संख्या निर्माण विफल, लॉक प्राप्ति विफल, या अगम्य मानी गई शाखा तक पहुँच गया।

arrow_forwardलॉग जाँचें

DAT_INTERNAL_UNAVAILABLE डिप्लॉयमेंट परिवेश सुधारने से हल हो जाता है, जबकि DAT_INTERNAL_UNKNOWN प्रायः रनटाइम की खराबी या लाइब्रेरी का बग होता है।


CMS सिंक

यदि CMS सिंक का उपयोग न किया जाए तो ये कोड नहीं आते।

DAT_CMS_UNREACHABLEआंशिकअस्थायी

DNS विफलता, कनेक्शन अस्वीकृत, TLS विफलता, टाइमआउट। टाइमआउट का अलग कोड नहीं है और वह यहीं शामिल है — क्योंकि प्रतिक्रिया एक जैसी है।

arrow_forwardबैकऑफ़ के बाद पुनः प्रयास

DAT_CMS_UNAUTHORIZEDगंभीरस्थायी401

सर्वर ने 401 दिया। टोकन नहीं है या गलत है।

arrow_forwardटोकन सेटिंग जाँचें

DAT_CMS_FORBIDDENगंभीरस्थायी403

सर्वर ने 403 दिया। टोकन वैध है पर इस एंडपॉइंट का अधिकार नहीं है।

arrow_forwardटोकन स्तर जाँचें

DAT_CMS_ENDPOINT_NOT_FOUNDगंभीरस्थायी404

सर्वर ने 404 दिया। URL गलत है।

arrow_forwardURL सेटिंग जाँचें

DAT_CMS_SERVER_ERRORआंशिकअस्थायी5xx

सर्वर ने 5xx दिया।

arrow_forwardबैकऑफ़ के बाद पुनः प्रयास

DAT_CMS_HTTP_STATUSगंभीरस्थायी

ऊपर के किसी भी मामले में न आने वाली गैर-2xx प्रतिक्रिया।

arrow_forwardस्टेटस कोड जाँचें

DAT_CMS_MALFORMEDगंभीरस्थायी

प्रतिक्रिया में संस्करण पंक्ति नहीं है; या संस्करण पंक्ति शुद्ध दशमलव नहीं है; या सीमा पार कर गई।

arrow_forwardसर्वर संस्करण जाँचें

DAT_CMS_IMPORT_FAILEDगंभीरस्थायी

प्रतिक्रिया तो मिली पर प्रमाणपत्र लागू नहीं हो सके। कारण cause में समाहित है।

arrow_forwardcause में CERT_* / KEY_* जाँचें

DAT_CMS_VERSION_RESETप्रभाव नहींस्थिति200

सर्वर ने क्लाइंट से पुराना संस्करण लौटाया। यह पूर्ण पुनः सिंक का निर्देश है।

arrow_forwardस्वतः संभाला जाता है

DAT_CMS_NOT_SYNCEDगंभीरअस्थायी

वह स्थिति जिसमें सिंक एक बार भी सफल नहीं हुई है।

arrow_forwardपहली सिंक की प्रतीक्षा करें

DAT_CMS_SYNC_IN_PROGRESSप्रभाव नहींस्थिति

पिछली सिंक अभी चल ही रही है, इसलिए इस बार का चक्र छोड़ दिया गया। यह त्रुटि नहीं है।

DAT_CMS_NOT_SUPPORTEDगंभीरस्थायी

CMS कार्यक्षमता बिल्ड में शामिल नहीं है। feature सक्रिय नहीं है या CURL नहीं जुड़ा है।

arrow_forwardबिल्ड विकल्प जाँचें

DAT_CMS_UNKNOWNआंशिकस्थायी

ऊपर की किसी भी श्रेणी में न आने वाली CMS त्रुटि।

arrow_forwardलॉग जाँचें

जिन कोडों में सिंक स्थायी रूप से विफल मानी जाती है (UNAUTHORIZED·FORBIDDEN·ENDPOINT_NOT_FOUND·MALFORMED·IMPORT_FAILED), वे सभी गंभीर हैं। पुनः प्रयास से हल नहीं होते जबकि प्रमाणपत्र लगातार समाप्त होते रहते हैं, इसलिए उपेक्षा करने पर सेवा अवश्य रुक जाएगी।

इसके विपरीत UNREACHABLE·SERVER_ERROR आंशिक हैं। मौजूदा प्रमाणपत्रों से काम चलता रहता है और अगले चक्र में स्वयं ठीक हो जाता है — पर लगातार विफल होते रहने पर अंततः गंभीर में बदल जाता है। लगातार विफलताओं की संख्या के आधार पर अलर्ट लगाएँ।

सिंक विफलता अपवाद के रूप में नहीं फेंकी जाती

पहली सिंक विफल होने पर भी मैनेजर सामान्य रूप से लौटाया जाता है — क्योंकि देर से ही सही, सिंक हो जाना बेहतर है। इसके बदले विफलता जाँची जा सकने वाली स्थिति के रूप में बनी रहती है।

क्लाइंटप्राप्त करने का तरीका
Rustmanager.last_error().await
Gomanager.LastError()
JavaScriptmanager.lastError()
Pythonmanager.last_error()
Rubymanager.last_error
Java/Kotlinmanager.lastError
C#manager.LastError
C/C++dat_cms_manager_last_error(m)

एक बार भी सफल न हुई हो तो DAT_CMS_NOT_SYNCED, सामान्य होने पर खाली।


सर्वर

CMS सर्वर द्वारा दिए जाने वाले कोड। क्लाइंट इन कोडों को बनाता नहीं, केवल प्राप्त करता है।

DAT_AUTH_UNAUTHORIZEDप्रभाव नहींस्थायीshieldसंदेह401

Authorization हेडर नहीं है, या टोकन किसी भी स्तर पर पंजीकृत नहीं है।

DAT_AUTH_FORBIDDENप्रभाव नहींस्थायीshieldसंदेह403

टोकन पंजीकृत तो है पर वह इस एंडपॉइंट के लिए अपेक्षित स्तर का नहीं है।

DAT_AUTH_DISABLEDगंभीरस्थिति

एक भी टोकन कॉन्फ़िगर न होने के कारण प्रमाणीकरण पूरी तरह निष्क्रिय है। प्रमाणपत्र जारी करने वाला API तक बिना प्रमाणीकरण के खुला रहता है। यह प्रतिक्रिया में नहीं जाता, केवल स्टार्टअप लॉग में दर्ज होता है।

arrow_forwardतुरंत टोकन सेट करें

DAT_REQ_MALFORMEDप्रभाव नहींस्थायीshieldसंदेह400

पथ या क्वेरी पैरामीटर पार्स नहीं हो पा रहे, या आर्ग्युमेंट अनुमत सीमा से बाहर है (ऋणात्मक delay, 10 वर्ष से अधिक आदि)।

DAT_REQ_ALG_UNSUPPORTEDप्रभाव नहींस्थायी400

अनुरोध पथ में दिया गया एल्गोरिदम नाम अज्ञात है।

DAT_REQ_NOT_FOUNDप्रभाव नहींस्थायीshieldसंदेह404·405

ऐसा कोई रूट नहीं है या मेथड भिन्न है।

DAT_REQ_TOO_LARGEप्रभाव नहींस्थायीshieldसंदेह413

अनुरोध body का आकार सीमा से अधिक है।

DAT_REQ_UNKNOWNप्रभाव नहींस्थायी400

ऊपर की किसी भी श्रेणी में न आने वाली अनुरोध त्रुटि।

DAT_STORE_UNAVAILABLEआंशिकअस्थायी503

DB कनेक्शन टूटना, कनेक्शन पूल समाप्त होना, लॉक प्रतिस्पर्धा, टाइमआउट। 503 का उपयोग करने वाला एकमात्र कोड, जिससे क्लाइंट जान पाता है कि "यह प्रतीक्षा करने से ठीक हो जाएगा"।

arrow_forwardबैकऑफ़ के बाद पुनः प्रयास

DAT_STORE_UNKNOWNगंभीरस्थायी500

पढ़ने या लिखने में विफलता, तालिका न होना, स्कीमा बेमेल, संग्रहीत प्रमाणपत्र पंक्ति का क्षतिग्रस्त होना।

arrow_forwardDB स्थिति जाँचें

प्रतिक्रिया आवरण:

json
{
  "code": "DAT_REQ_ALG_UNSUPPORTED",
  "details": { "algorithm": "BOGUS-ALG" }
}

प्रमाणपत्र बनाते और संभालते समय आने वाली त्रुटियाँ सर्वर भी ऊपर दिए साझा कोडों (DAT_CERT_*, DAT_KEY_*, DAT_CONFIG_*) से ही देता है।

सर्वर कोड मिलने पर

क्लाइंट सर्वर के कोड को अपने CMS कोड में लपेटता है, और मूल कोड cause में सुरक्षित रखता है।

जो प्राप्त हुआHTTPक्लाइंट जो कोड देता है
DAT_AUTH_UNAUTHORIZED401DAT_CMS_UNAUTHORIZED
DAT_AUTH_FORBIDDEN403DAT_CMS_FORBIDDEN
DAT_REQ_NOT_FOUND404DAT_CMS_ENDPOINT_NOT_FOUND
DAT_REQ_* (अन्य)400·405·413DAT_CMS_HTTP_STATUS
DAT_STORE_UNAVAILABLE503DAT_CMS_SERVER_ERROR
DAT_STORE_UNKNOWN500DAT_CMS_SERVER_ERROR
(संस्करण घटाना)200DAT_CMS_VERSION_RESET

लक्षण से खोजें

लक्षणकोड
लॉगिन के तुरंत बाद तो चलता है, पर थोड़ी देर बाद अस्वीकार हो जाता हैDAT_TOKEN_EXPIRED — टोकन का जीवनकाल समाप्त हो गया। पुनः जारी करने से हल हो जाता है
सत्यापन केवल कुछ सर्वरों पर विफल होता हैDAT_CERT_NOT_SYNCED — उस सर्वर को अभी नया CID नहीं मिला है
वही टोकन सभी सर्वरों पर अस्वीकार होता हैDAT_CERT_NOT_FOUND — यह ऐसा CID है जो कभी जारी ही नहीं हुआ
जारी करने वाला सर्वर टोकन नहीं बना पाताDAT_MANAGER_NO_ISSUABLE_CERTIFICATE + DAT_CERT_VERIFY_ONLYverify-only रूप में डिप्लॉय हुआ है
जारी करना केवल स्टार्टअप के तुरंत बाद विफल होता हैDAT_MANAGER_NO_CERTIFICATE — यह पहली सिंक से पहले की स्थिति है। थोड़ी देर में हल हो जाएगी
CMS सिंक लगातार विफल हो रही हैDAT_CMS_UNAUTHORIZED — टोकन गलत है। पुनः प्रयास से हल नहीं होगा
एक भी प्रमाणपत्र नहीं आ रहाDAT_CMS_ENDPOINT_NOT_FOUND — URL में टाइपो है
विफलता केवल किसी विशेष प्लेटफ़ॉर्म पर होती हैDAT_INTERNAL_UNAVAILABLE — क्रिप्टो बैकएंड उपलब्ध नहीं है
सत्यापन विफलताएँ अचानक बढ़ गईंDAT_SIG_MISMATCH — एक बार होना हानिरहित है, पर एक साथ बहुत आना जालसाज़ी का प्रयास है
secure का डिक्रिप्शन अचानक विफल होने लगाDAT_CRYPTO_TAG_MISMATCH — प्रमाणपत्र बेमेल हैं या छेड़छाड़ का प्रयास है
CMS स्टार्टअप लॉग में चेतावनीDAT_AUTH_DISABLEDप्रमाणीकरण बंद है। जारी करने वाला API खुला हुआ है

परिशिष्ट

कोड सिंटैक्स

DAT_<क्षेत्र>_<कारण>
  • एक ही कारण अलग-अलग क्षेत्रों में आए तो कारण का नाम समान रहता है। DAT_TOKEN_MALFORMED और DAT_CERT_MALFORMED में केवल विषय भिन्न है, अर्थ एक ही है।
  • _UNKNOWN प्रत्येक क्षेत्र के लिए केवल फ़ॉलबैक है। इसे "अज्ञात एल्गोरिदम" जैसे अर्थ में प्रयोग नहीं किया जाता (उसके लिए _UNSUPPORTED है)।
  • कोड स्ट्रिंग एक सार्वजनिक अनुबंध है। संदेश स्वतंत्र रूप से बदला जा सकता है, कोड नहीं।
श्रेणीकोड उपसर्ग
टोकनDAT_TOKEN_
प्रमाणपत्रDAT_CERT_
हस्ताक्षरDAT_SIG_
एन्क्रिप्शनDAT_CRYPTO_
कुंजीDAT_KEY_
मैनेजरDAT_MANAGER_
कॉन्फ़िगरेशनDAT_CONFIG_
आंतरिकDAT_INTERNAL_
CMS सिंकDAT_CMS_
सर्वरDAT_AUTH_ · DAT_REQ_ · DAT_STORE_

क्लाइंट के अनुसार पहुँच

क्लाइंटत्रुटि प्रकारकोडपुनः प्रयास वर्गीकरणसुरक्षा घटना
RustDatError enumerr.code()err.retry()err.security_event()
Go*dat.Errorerr.Codedat.Retry(err)dat.SecurityEvent(err)
JavaScriptDatError extends Errore.codee.retrye.securityEvent
PythonDatError(ValueError, RuntimeError)e.codee.retrye.security_event
RubySaro::Dat::Errore.codee.retrye.security_event?
Java/KotlinDatExceptione.codee.retrye.securityEvent
C#DatExceptione.Codee.Retrye.SecurityEvent
C/C++dat_error_tdat_error_code(e)dat_error_retry(e)dat_error_is_security_event(e)
CMS सर्वरJSON आवरणcode फ़ील्ड

सुरक्षा घटना केवल उन दो कोडों के लिए true लौटाता है जहाँ जालसाज़ी या छेड़छाड़ निश्चित है (DAT_SIG_MISMATCH, DAT_CRYPTO_TAG_MISMATCH)। इस दस्तावेज़ का संदेह लेबल उससे व्यापक दायरा (छेड़छाड़ किए गए टोकन, कुंजी और अनुरोध तक) समेटता है, और फ़िलहाल केवल दस्तावेज़ का वर्गीकरण है, क्लाइंट API के रूप में उपलब्ध नहीं है।

प्रभाव का स्तर भी इसी तरह दस्तावेज़ का वर्गीकरण है। एक ही कोड कहाँ उत्पन्न हुआ, इसके अनुसार चोट भिन्न होती है — उदाहरण के लिए DAT_KEY_INVALID आने वाले टोकन को छानते समय कोई प्रभाव नहीं डालता, पर CMS सिंक के दौरान प्रमाणपत्र पढ़ते समय आए तो पूरी सिंक विफल हो जाती है।

मूल कारण नष्ट नहीं होता। DAT_MANAGER_NO_ISSUABLE_CERTIFICATE और DAT_CMS_IMPORT_FAILED कारण को प्रत्येक भाषा की अपवाद शृंखला (cause / __cause__ / InnerException / Unwrap()) के माध्यम से आगे पहुँचाते हैं।

C/C++ में संख्यात्मक मान भी बनाए रखे गए हैं

dat_error_t के पुराने संख्यात्मक मान ABI संगतता के लिए यथावत रखे गए हैं, पर मानक स्ट्रिंग कोड ही है। लाइब्रेरी अब पुराने मान नहीं लौटाती, इसलिए err == DAT_ERROR_INVALID_DAT जैसी तुलना मेल नहीं खाएगी। dat_error_code(e) से मिलान करें।

C में अपवाद शृंखला नहीं होती, इसलिए कारण अलग से dat_manager_issuable_cause() द्वारा प्राप्त किया जाता है।