Error codes ​

DAT implementations انسانی-readable messages سے الگ stable error codes فراہم کرتی ہیں۔ Programs کو message strings کا موازنہ کرنے کے بجائے code اور retry classification سے فیصلے کرنے چاہییں۔

Code format ​

text
DAT_<AREA>_<CAUSE>
PrefixArea
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 کو اپنے area کے کسی دوسرے code میں classify نہ کیا جا سکے۔ ایک ہی cause تمام areas میں ایک ہی نام استعمال کرتی ہے۔

Retry classifications ​

Classificationمطلبطریقہ
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

کوئی certificate DAT کے `cid` سے نہیں ملتا۔ 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 issue کرنے کی کوشش ہوئی۔ 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_INVALIDکامیاب response format غلطserver-client contract چیک کریں
DAT_CMS_VERSION_RESETserver version پیچھے گیاCMS data اور deployment state چیک کریں
DAT_CMS_IMPORT_FAILEDموصول certificates apply نہ ہوئے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 غائب یا invalid ہے
DAT_AUTH_FORBIDDEN403token role request کی اجازت نہیں دیتا
DAT_REQ_ALG_UNSUPPORTED400Unsupported algorithm name
DAT_REQ_NOT_FOUND404·405Path یا method mismatch
DAT_REQ_TOO_LARGE413oversized request body کے لیے reserved code
DAT_STORE_UNAVAILABLE503storage عارضی طور پر unavailable
DAT_STORE_UNKNOWN500unclassified storage-processing error

موجودہ clients non-2xx JSON responses کا server code براہِ راست expose نہیں کرتے بلکہ HTTP status کو DAT_CMS_* code میں بدلتے ہیں۔ اس لیے server logs اور client error codes مختلف ہو سکتے ہیں۔

زبان کے لحاظ سے access ​

EnvironmentError 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 دیکھیں۔