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গুরুতরস্থায়ী

import করা তালিকার ভেতরে একই 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গুরুতরসাময়িক

একটিও সার্টিফিকেট নেই। হয় import-এর আগে, নয়তো 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 সুবিধা বিল্ডে অন্তর্ভুক্ত হয়নি। হয় ফিচার সক্রিয় নয়, নয়তো 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, দশ বছরের বেশি ইত্যাদি)।

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 ফিল্ড

নিরাপত্তা ইভেন্ট কেবল জালিয়াতি ও কারসাজি নিশ্চিত এমন দুটি ক্ষেত্রেই (DAT_SIG_MISMATCH, DAT_CRYPTO_TAG_MISMATCH) true ফেরত দেয়। এই ডকুমেন্টের সন্দেহ ট্যাগের পরিধি তার চেয়ে বিস্তৃত (কারসাজি করা টোকেন, কী ও অনুরোধ পর্যন্ত), এবং এটি এখন কেবল ডকুমেন্টেশনের শ্রেণিবিভাগ — ক্লায়েন্ট API-তে প্রকাশ করা হয় না।

প্রভাব-এর মাত্রাও একইভাবে ডকুমেন্টেশনের শ্রেণিবিভাগ। কারণ একই কোড কোথায় দেখা দিল তার উপর ক্ষতির মাত্রা বদলায় — যেমন DAT_KEY_INVALID আসা টোকেন ছেঁকে ফেলার সময় প্রভাবহীন, কিন্তু CMS সিঙ্কের সময় সার্টিফিকেট পড়তে গিয়ে দেখা দিলে গোটা সিঙ্কই ব্যর্থ করে দেয়।

অধস্তন কারণ ফেলে দেওয়া হয় না। DAT_MANAGER_NO_ISSUABLE_CERTIFICATEDAT_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() দিয়ে দেখা হয়।