Error codes ​

DAT implementations मानव-पठनीय messages से अलग स्थिर error codes देते हैं। Programs को message strings की तुलना नहीं, code और retry classification के आधार पर निर्णय लेना चाहिए।

Code format ​

text
DAT_<AREA>_<CAUSE>
Prefixक्षेत्र
DAT_TOKEN_DAT strings और expiration
DAT_CERT_Certificate strings और state
DAT_SIG_Signatures और verification
DAT_CRYPTO_Encryption और decryption
DAT_KEY_Key formats और authority
DAT_MANAGER_Certificate managers
DAT_CONFIG_Call arguments और configuration
DAT_INTERNAL_Runtime internals
DAT_CMS_CMS client synchronization
DAT_AUTH_, DAT_REQ_, DAT_STORE_CMS server

_UNKNOWN केवल तब उपयोग होता है जब error को उसके क्षेत्र के किसी अन्य code में classify न किया जा सके। समान cause सभी क्षेत्रों में समान नाम उपयोग करता है।

Retry classifications ​

वर्गीकरणअर्थसमाधान
Transientबाहरी स्थिति सुधरने पर सफल हो सकता हैbackoff के साथ सीमित बार retry करें
Statecertificate synchronization या समय बदलने के बाद सफल हो सकता हैआवश्यक state refresh करके retry करें
Permanentउसी input के साथ फिर विफल होगाinput, configuration या code सुधारें

Tokens और certificates ​

DAT_TOKEN_MALFORMEDकोई प्रभाव नहींस्थायी

DAT में अमान्य field count, numeric value या Base64Url representation है। input त्याग दें।

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

DAT का expiration time वर्तमान समय के बराबर या उससे पहले है। नया DAT प्राप्त करें।

DAT_CERT_MALFORMEDकोई प्रभाव नहींस्थायी

Certificate string की structure या field representation अमान्य है।

DAT_CERT_NOT_FOUNDकोई प्रभाव नहींState

DAT के `cid` से कोई certificate मेल नहीं खाता। certificate synchronization state जाँचें।

DAT_CERT_NOT_SYNCEDकोई प्रभाव नहींState

आवश्यक certificate अभी service तक नहीं पहुँचा होगा। तुरंत synchronize करके फिर जाँचें।

DAT_CERT_NOT_YET_VALIDकोई प्रभाव नहींState

Certificate का start time अभी नहीं आया। system clock और certificate distribution timing जाँचें।

DAT_CERT_EXPIREDकोई प्रभाव नहींस्थायी

Certificate की verification period समाप्त हो गई है।

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

एक import list में एक ही `cid` एक से अधिक बार है। पूरा import अस्वीकार करें।

Signatures, encryption और keys ​

DAT_SIG_MISMATCHकोई प्रभाव नहींस्थायीshieldसंदिग्ध

Signature body से मेल नहीं खाता। DAT बदला गया है या अलग key से signed है।

DAT_CRYPTO_TAG_MISMATCHकोई प्रभाव नहींस्थायीshieldसंदिग्ध

AES-GCM authentication tag मेल नहीं खाता। ciphertext tampering या certificate mismatch जाँचें।

DAT_KEY_INVALIDकोई प्रभाव नहींस्थायी

Key length, format या algorithm combination अमान्य है।

DAT_SIG_KEY_MISSINGकोई प्रभाव नहींस्थायी

Verify-only certificate से DAT जारी करने का प्रयास हुआ। issuing service को full certificate चाहिए।

DAT_SIG_MISMATCH और DAT_CRYPTO_TAG_MISMATCH public security-event API में true classify होने वाले errors हैं। एक invalid input service outage नहीं है, लेकिन बार-बार होने पर इसे security observation मानें।

Managers और configuration ​

DAT_MANAGER_NO_CERTIFICATEआंशिकState

Manager के पास certificates नहीं हैं। certificates import करें या CMS synchronization पूरा करें।

DAT_MANAGER_NO_ISSUABLE_CERTIFICATEआंशिकState

Manager के पास certificates हैं, पर कोई full certificate अभी issuable नहीं है। expiration, start time या verify-only state के लिए cause chain देखें।

DAT_CONFIG_ARGUMENT_INVALIDकोई प्रभाव नहींस्थायी

Call argument या configuration value अनुमत range से बाहर है।

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

वर्तमान platform के लिए आवश्यक cryptographic या network capability उपलब्ध नहीं है।

CMS clients ​

Codeअर्थसामान्य समाधान
DAT_CMS_URI_INVALIDअमान्य CMS URIconfiguration सुधारें
DAT_CMS_UNAUTHORIZEDauthentication विफलtoken सुधारें
DAT_CMS_FORBIDDENtoken role को permission नहींtoken role जाँचें
DAT_CMS_ENDPOINT_NOT_FOUNDpath नहीं है या अलग हैCMS URL और path जाँचें
DAT_CMS_NETWORKconnection या transfer विफलnetwork जाँचकर backoff करें
DAT_CMS_TIMEOUTtime limit पारnetwork और timeout settings बदलें
DAT_CMS_SERVER_ERRORCMS server errorserver state जाँचकर backoff करें
DAT_CMS_RESPONSE_INVALIDsuccessful response format अमान्यserver-client contract जाँचें
DAT_CMS_VERSION_RESETserver version पीछे गयाCMS data और deployment state जाँचें
DAT_CMS_IMPORT_FAILEDमिले certificates लागू नहीं हुएcause chain देखें
DAT_CMS_STOPPEDstopped manager उपयोग हुआनया manager बनाएँ या call order सुधारें

Best-effort initial synchronization वाली libraries error को last-error field में रखती हैं। startup विफल करना हो तो error सीधे return या throw करने वाला immediate synchronization API उपयोग करें।

CMS server ​

CodeHTTPअर्थ
DAT_AUTH_UNAUTHORIZED401token नहीं है या अमान्य है
DAT_AUTH_FORBIDDEN403token role request की अनुमति नहीं देता
DAT_REQ_ALG_UNSUPPORTED400unsupported algorithm name
DAT_REQ_NOT_FOUND404·405path या method mismatch
DAT_REQ_TOO_LARGE413बहुत बड़े request body के लिए reserved code
DAT_STORE_UNAVAILABLE503storage अस्थायी रूप से unavailable
DAT_STORE_UNKNOWN500unclassified storage-processing error

मौजूदा clients non-2xx JSON response का server code सीधे expose नहीं करते; HTTP status को DAT_CMS_* code में बदलते हैं। इसलिए server logs और client error codes अलग हो सकते हैं।

भाषा के अनुसार access ​

परिवेशError codeRetry classification
Rusterr.code()err.retry()
Godat.Code(err)dat.Retry(err)
JavaScript / TypeScripterror.codeerror.retry
Pythonerror.codeerror.retry
Rubyerror.codeerror.retry
Java / Kotlinerror.codeerror.retry
C#error.Codeerror.Retry
C / C++dat_error_code(error)dat_error_retry(error)

Lower-level cause वाले errors में उस भाषा की exception chain या cause-access API देखें।