کدهای خطا

پیاده‌سازی‌های DAT علاوه بر پیام خوانا برای انسان، کد خطای پایدار ارائه می‌دهند. برنامه باید بر اساس کد و طبقه‌بندی تکرار تصمیم بگیرد، نه با مقایسه متن پیام.

روش خواندن

text
DAT_<حوزه>_<علت>
پیشوندحوزه
DAT_TOKEN_رشته DAT و انقضا
DAT_CERT_رشته و وضعیت گواهی
DAT_SIG_امضا و راستی‌آزمایی
DAT_CRYPTO_رمزگذاری و رمزگشایی
DAT_KEY_قالب و اختیار کلید
DAT_MANAGER_مدیر گواهی
DAT_CONFIG_آرگومان‌های فراخوانی و تنظیمات
DAT_INTERNAL_قابلیت‌های داخلی runtime
DAT_CMS_همگام‌سازی کلاینت CMS
DAT_AUTH_, DAT_REQ_, DAT_STORE_سرور CMS

_UNKNOWN فقط زمانی در هر حوزه استفاده می‌شود که خطا در هیچ کد دیگری نگنجد. علت یکسان، حتی در حوزه‌های مختلف، نام یکسانی دارد.

طبقه‌بندی تکرار

طبقهمعناپردازش
موقتبا بازیابی وضعیت خارجی ممکن است موفق شودتکرار محدود پس از backoff
وضعیتبا تغییر همگام‌سازی گواهی یا زمان ممکن است موفق شودبه‌روزرسانی وضعیت لازم و سپس تکرار
دائمیبا همان ورودی دوباره شکست می‌خورداصلاح ورودی، تنظیمات یا کد

توکن و گواهی

DAT_TOKEN_MALFORMEDبدون تأثیردائمی

تعداد فیلدها، عدد یا نمایش Base64Url در DAT با مشخصات متفاوت است. ورودی را دور بیندازید.

DAT_TOKEN_EXPIREDبدون تأثیردائمی

زمان انقضای DAT برابر زمان فعلی یا در گذشته است. باید DAT جدیدی دریافت شود.

DAT_CERT_MALFORMEDبدون تأثیردائمی

ساختار یا نمایش فیلدهای رشته گواهی نادرست است.

DAT_CERT_NOT_FOUNDبدون تأثیروضعیت

گواهی مطابق `cid` در DAT وجود ندارد. وضعیت همگام‌سازی گواهی را بررسی کنید.

DAT_CERT_NOT_SYNCEDبدون تأثیروضعیت

ممکن است گواهی موردنیاز هنوز به سرویس نرسیده باشد. فوراً همگام کنید و دوباره بررسی کنید.

DAT_CERT_NOT_YET_VALIDبدون تأثیروضعیت

زمان شروع گواهی هنوز فرا نرسیده است. ساعت سیستم و زمان توزیع گواهی را بررسی کنید.

DAT_CERT_EXPIREDبدون تأثیردائمی

دوره قابل راستی‌آزمایی گواهی به پایان رسیده است.

DAT_CERT_DUPLICATEجزئیدائمی

در یک فهرست واردات، `cid` یکسان تکرار شده است. کل واردات رد می‌شود.

امضا، رمزگذاری و کلید

DAT_SIG_MISMATCHبدون تأثیردائمیshieldمشکوک

امضا با متن مطابقت ندارد. DAT دستکاری شده یا با کلید دیگری امضا شده است.

DAT_CRYPTO_TAG_MISMATCHبدون تأثیردائمیshieldمشکوک

برچسب اصالت AES-GCM مطابقت ندارد. دستکاری متن رمزشده یا عدم تطابق گواهی را بررسی کنید.

DAT_KEY_INVALIDبدون تأثیردائمی

طول، قالب یا ترکیب الگوریتم کلید نادرست است.

DAT_SIG_KEY_MISSINGبدون تأثیردائمی

با گواهی فقط راستی‌آزمایی تلاش شده DAT صادر شود. سرویس صدور به گواهی کامل نیاز دارد.

DAT_SIG_MISMATCH و DAT_CRYPTO_TAG_MISMATCH خطاهایی هستند که API عمومی رویداد امنیتی، آن‌ها را true طبقه‌بندی می‌کند. یک ورودی نادرست به‌تنهایی اختلال سرویس نیست، اما تکرار آن باید به‌عنوان مورد نظارت امنیتی پردازش شود.

مدیر و تنظیمات

DAT_MANAGER_NO_CERTIFICATEجزئیوضعیت

مدیر هیچ گواهی‌ای ندارد. گواهی وارد کنید یا همگام‌سازی CMS را به پایان برسانید.

DAT_MANAGER_NO_ISSUABLE_CERTIFICATEجزئیوضعیت

گواهی وجود دارد، اما در حال حاضر هیچ گواهی کامل قابل صدوری نیست. در زنجیره علت، انقضا، زمان شروع یا verify-only بودن را بررسی کنید.

DAT_CONFIG_ARGUMENT_INVALIDبدون تأثیردائمی

آرگومان فراخوانی یا مقدار تنظیمات خارج از محدوده مجاز است.

DAT_INTERNAL_UNAVAILABLEبحرانیدائمی

قابلیت رمزنگاری یا شبکه موردنیاز در پلتفرم فعلی وجود ندارد.

کلاینت CMS

کدمعناپردازش معمول
DAT_CMS_URI_INVALIDقالب URI مربوط به CMS نادرست استاصلاح تنظیمات
DAT_CMS_UNAUTHORIZEDاحراز هویت ناموفقاصلاح توکن
DAT_CMS_FORBIDDENنقش، اختیار نداردبررسی نقش توکن
DAT_CMS_ENDPOINT_NOT_FOUNDمسیر وجود ندارد یا متفاوت استبررسی نشانی و مسیر CMS
DAT_CMS_NETWORKاتصال یا انتقال ناموفقبررسی شبکه و backoff
DAT_CMS_TIMEOUTمهلت به پایان رسیدتنظیم شبکه و timeout
DAT_CMS_SERVER_ERRORخطای سرور CMSبررسی وضعیت سرور و backoff
DAT_CMS_RESPONSE_INVALIDقالب پاسخ موفق نادرستبررسی قرارداد سرور و کلاینت
DAT_CMS_VERSION_RESETنسخه سرور عقب رفته استبررسی داده و وضعیت استقرار CMS
DAT_CMS_IMPORT_FAILEDاعمال گواهی دریافت‌شده ناموفقبررسی زنجیره علت
DAT_CMS_STOPPEDاستفاده از مدیر خاتمه‌یافتهساخت مدیر جدید یا اصلاح ترتیب فراخوانی

کتابخانه‌ای که همگام‌سازی اولیه‌اش best-effort است، خطا را در فیلد آخرین خطا نگه می‌دارد. اگر راه‌اندازی باید ناموفق شود، از API همگام‌سازی فوری که خطا را مستقیم بازمی‌گرداند یا پرتاب می‌کند استفاده کنید.

سرور CMS

کدHTTPمعنا
DAT_AUTH_UNAUTHORIZED401توکن وجود ندارد یا نادرست است
DAT_AUTH_FORBIDDEN403نقش توکن با اختیار درخواست متفاوت است
DAT_REQ_ALG_UNSUPPORTED400نام الگوریتم پشتیبانی نمی‌شود
DAT_REQ_NOT_FOUND404·405مسیر یا متد مطابق نیست
DAT_REQ_TOO_LARGE413کد رزروشده برای عبور از محدوده بدنه درخواست
DAT_STORE_UNAVAILABLE503مخزن موقتاً قابل استفاده نیست
DAT_STORE_UNKNOWN500خطای طبقه‌بندی‌نشده هنگام پردازش مخزن

کلاینت فعلی کد سرور در JSON مربوط به non-2xx را عیناً نمایش نمی‌دهد، بلکه وضعیت HTTP را به کد DAT_CMS_* تبدیل می‌کند. بنابراین ممکن است کد خطای لاگ سرور با کد خطای کلاینت متفاوت باشد.

روش بررسی در هر زبان

محیطکد خطاطبقه‌بندی تکرار
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)

خطاهای دارای علت زیرین را از زنجیره استثنا یا API دریافت علت در هر زبان بررسی کنید.