پرش به محتویات

خطاها و موارد خاص

وضعیت سند

آماده بازبینی محصول — شامل تمام خطاهای ERR-SET-01 تا ERR-SET-39 و ERR-MEM-01 تا ERR-MEM-27.

۱. هدف و مرزبندی

این سند رفتار محصول در Validation، مانع کسب‌وکاری، Conflict، خطای موقت، نتیجه نامشخص، شکست بخشی و وضعیت نیازمند پشتیبانی را تعریف می‌کند.

جزئیات فنی Exception، Stack Trace، HTTP Status یا پیاده‌سازی Retry در این سند نیست؛ اما قرارداد محصول برای نمایش، حفظ داده و بازیابی باید توسط پیاده‌سازی رعایت شود.

۲. نکته مدل‌سازی

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

نمونه‌ها:

  • ERR-SET-15 یک Pending State است، نه شکست قطعی.
  • ERR-SET-27 مسیر معتبر «Role در انتظار» است، نه خطای سیستمی.
  • ERR-MEM-04 شکست بخشی Batch است و موفقیت‌ها حفظ می‌شوند.
  • ERR-MEM-11 ثبت Dispute توسط شخص است، نه خطای کاربر.
  • ERR-SET-31 Guard تأیید اثر تغییر است، نه Exception.

۳. طبقه‌بندی و شدت

دسته

کد دسته
VAL اعتبارسنجی ورودی
BUS مانع یا Guard کسب‌وکاری
CON تعارض یا داده منسوخ
TRN خطای موقت
PND نتیجه نامشخص
PAR شکست بخشی
SEC هویت، Scope یا Permission
SUP نیازمند پشتیبانی یا بررسی دستی

شدت

سطح تعریف
SEV-1 ریسک مالی، امنیتی یا ناسازگاری جدی
SEV-2 مسیر اصلی مسدود ولی داده قابل بازیابی است
SEV-3 Action جاری با اصلاح یا تصمیم کاربر قابل ادامه است
SEV-4 Warning غیرمسدودکننده

۴. قواعد سراسری نمایش

  • خطای یک فیلد کنار همان فیلد نمایش داده می‌شود.
  • فرم دارای چند خطا Error Summary قابل دسترس دارد.
  • خطای مسدودکننده فقط Toast نیست.
  • Pending پرداخت یا Provisioning با ظاهر شکست نمایش داده نمی‌شود.
  • خطای غیرمنتظره پیام عمومی، Action بازیابی و Reference ID دارد.
  • کد داخلی ERR-*، Stack Trace، نام Service یا Database به کاربر نمایش داده نمی‌شود.
  • پیام کاربر باید Action بعدی را روشن کند.
  • داده معتبر واردشده پس از خطای قابل بازیابی حفظ می‌شود.

۵. Catalog خطاهای راه‌اندازی

۵.۱. ورود و OTP

شناسه دسته / شدت شرط نمایش بازیابی و اثر داده
ERR-SET-01 VAL / SEV-3 شماره موبایل نامعتبر Field Error FIX_INPUT؛ OTP ساخته نمی‌شود
ERR-SET-02 VAL / SEV-3 OTP اشتباه یا منقضی Inline Error FIX_INPUT یا Resend؛ Account Link ایجاد نمی‌شود
ERR-SET-03 BUS / SEV-3 درخواست بیش از حد OTP Banner با زمان انتظار WAIT_RETRY؛ Rate Limit حفظ می‌شود
ERR-SET-04 TRN / SEV-2 بررسی عضویت ناموفق Page State یا Banner RETRY؛ مقصد کاربر حدس زده و Account یا Building ساخته نمی‌شود

قواعد امنیتی:

  • پیام نباید وجود یا عدم وجود Account را بیش از نیاز افشا کند.
  • شمار تلاش و جزئیات Rate Limit در Log فنی ثبت می‌شوند.
  • OTP و Token در Log خام ثبت نمی‌شوند.

۵.۲. اطلاعات پایه ساختمان

شناسه دسته / شدت شرط نمایش بازیابی و اثر داده
ERR-SET-05 VAL / SEV-3 نام ساختمان خالی Field Error FIX_INPUT؛ سایر مقادیر حفظ می‌شوند
ERR-SET-06 VAL / SEV-3 تعداد واحد نامعتبر یا منفی Field Error FIX_INPUT؛ فیلد نامعتبر مشخص می‌شود
ERR-SET-07 BUS / SEV-3 مجموع واحدها کمتر از ۲ Inline Business Error FIX_INPUT؛ پیام مصوب حداقل دو واحد نمایش داده می‌شود
ERR-SET-08 TRN / SEV-2 ذخیره Setup Request ناموفق Banner RETRY؛ فرم حفظ و درخواست تکراری ساخته نمی‌شود

متن مصوب ERR-SET-07:

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

۵.۳. قیمت‌گذاری

شناسه دسته / شدت شرط نمایش بازیابی و اثر داده
ERR-SET-09 TRN / SEV-2 تعرفه فعال در دسترس نیست Page State RETRY؛ قیمت حدس زده نمی‌شود
ERR-SET-10 TRN / SEV-2 محاسبه قیمت شکست خورده Inline State RETRY؛ مبلغ ناقص یا Cache‌شده نمایش داده نمی‌شود
ERR-SET-11 CON / SEV-3 تعداد واحد پس از محاسبه تغییر کرده Banner RELOAD و محاسبه مجدد؛ Quote قبلی نامعتبر می‌شود

۵.۴. پرداخت

شناسه دسته / شدت شرط نمایش بازیابی و اثر داده
ERR-SET-12 CON / SEV-2 قیمت پیش از پرداخت تغییر یا نامعتبر شده صفحه بازبینی مبلغ REVIEW_CONFIRM؛ انتقال به درگاه متوقف می‌شود
ERR-SET-13 TRN / SEV-2 ساخت Payment Request شکست خورده Banner RETRY با Idempotency؛ Payment تکراری ساخته نمی‌شود
ERR-SET-14 TRN / SEV-2 درگاه در دسترس نیست Page State RETRY؛ Setup Request حفظ و Building ساخته نمی‌شود
ERR-SET-15 PND / SEV-2 نتیجه قابل اعتبارسنجی نیست صفحه «در حال بررسی پرداخت» WAIT_RETRY خودکار؛ نتیجه حدس زده نمی‌شود
ERR-SET-16 SUP / SEV-1 مبلغ Provider با Payment Request متفاوت است توقف امن و Reference CONTACT_SUPPORT؛ پرداخت موفق و Building ایجاد نمی‌شود

قواعد مالی:

  • بازگشت از درگاه به‌تنهایی موفقیت نیست.
  • Retry اعتبارسنجی می‌تواند خودکار باشد؛ Retry پرداخت مالی بدون Action کاربر انجام نمی‌شود.
  • Callback تکراری نتیجه قبلی را برمی‌گرداند.
  • ERR-SET-16 Alert عملیاتی و Log تقویت‌شده دارد.
  • مبلغ، Token و اطلاعات درگاه در پیام عمومی نمایش داده نمی‌شوند.

۵.۵. ایجاد ساختمان پس از پرداخت

شناسه دسته / شدت شرط نمایش بازیابی و اثر داده
ERR-SET-17 TRN / SEV-1 ایجاد Building پس از پرداخت معتبر شکست خورده صفحه «در حال راه‌اندازی» Retry خودکار؛ Payment حفظ می‌شود
ERR-SET-18 TRN / SEV-1 Building ایجاد شده ولی Subscription کامل نیست صفحه «در حال راه‌اندازی» Retry جزء ناقص؛ دریافت وجه مجدد ممنوع
ERR-SET-19 TRN / SEV-1 Membership یا Role مدیر کامل نیست صفحه «در حال راه‌اندازی» Retry جزء ناقص؛ Building قابل استفاده اعلام نمی‌شود
ERR-SET-20 TRN / SEV-2 تعیین Current Context شکست خورده Full-page State RETRY انتخاب Context؛ Building ایجادشده حفظ می‌شود

قواعد:

  • خطای داخلی تاریخ شروع Subscription را به زمان فعال‌شدن واقعی منتقل می‌کند.
  • Retry با Payment ID و Provisioning Job ID در برابر تکرار محافظت می‌شود.
  • عبور از SLA به Alert عملیاتی و Notification نیازمند اقدام منجر می‌شود.

۵.۶. Import Excel

شناسه دسته / شدت شرط نمایش بازیابی و اثر داده
ERR-SET-21 VAL / SEV-3 قالب یا ستون‌ها نامعتبر Summary + File Error REUPLOAD؛ Preview نهایی و Import انجام نمی‌شوند
ERR-SET-22 VAL / SEV-3 ردیف دارای خطای مسدودکننده Summary + Report REUPLOAD؛ کل Import متوقف می‌شود
ERR-SET-23 VAL / SEV-3 نوع واحد، سکونت یا رابطه نامعتبر Row Error + Report REUPLOAD؛ ردیف و ستون مشخص می‌شوند
ERR-SET-24 TRN / SEV-2 ثبت نهایی Import شکست خورده Result State RETRY؛ عملیات Rollback و داده ناقص ثبت نمی‌شود

موارد خاص Import:

  • موبایل خالی Warning است و Import را مسدود نمی‌کند.
  • فایل جدید Import Attempt جدید می‌سازد.
  • Refresh صفحه وضعیت Attempt جاری را بازیابی می‌کند.
  • Import موفق Invitation یا SMS ارسال نمی‌کند.
  • فایل بسیار بزرگ، نوع فایل نامعتبر یا Upload ناقص باید پیش از Validation با پیام قابل اقدام متوقف شود.

۵.۷. تیم مدیریت

شناسه دسته / شدت شرط نمایش بازیابی و اثر داده
ERR-SET-25 BUS / SEV-3 مدل مشخص ولی مسئول لازم تعیین نشده Inline Guard FIX_INPUT؛ بخش IN_PROGRESS می‌ماند
ERR-SET-26 BUS / SEV-3 تخصیص Role به خود بدون تأیید Confirmation Required REVIEW_CONFIRM؛ Role فعال نمی‌شود
ERR-SET-27 BUS / SEV-4 شخص مسئول Membership فعال ندارد Informational State Role در انتظار ذخیره و Permission فعال نمی‌شود
ERR-SET-28 TRN / SEV-2 ذخیره ساختار مدیریت شکست خورده Banner RETRY؛ وضعیت قبلی حفظ و Role تکراری ساخته نمی‌شود

۵.۸. کارکنان و Role Template

شناسه دسته / شدت شرط نمایش بازیابی و اثر داده
ERR-SET-29 BUS / SEV-3 Role بدون Role Template معتبر Inline Guard RESOLVE_DEPENDENCY؛ بخش کامل نمی‌شود
ERR-SET-30 SEC / SEV-2 Permission حساس بدون تأیید صریح Confirmation Required REVIEW_CONFIRM؛ تغییر ذخیره نمی‌شود
ERR-SET-31 BUS / SEV-3 اثر تغییر بر افراد فعال تأیید نشده Impact Review REVIEW_CONFIRM؛ Template قبلی حفظ می‌شود
ERR-SET-32 TRN / SEV-2 ذخیره Template یا موقعیت شکست خورده Banner RETRY؛ نسخه قبلی حفظ و Role تکراری ساخته نمی‌شود

۵.۹. تنظیمات مالی

شناسه دسته / شدت شرط نمایش بازیابی و اثر داده
ERR-SET-33 BUS / SEV-3 فهرست واحدها موجود نیست Dependency State RESOLVE_DEPENDENCY؛ تنظیمات اجرایی نهایی نمی‌شوند
ERR-SET-34 VAL / SEV-2 مقصد تسویه نامعتبر است Field + Summary FIX_INPUT؛ دریافت آنلاین فعال نمی‌شود
ERR-SET-35 TRN / SEV-2 ذخیره تنظیمات مالی شکست خورده Banner RETRY؛ وضعیت قبلی حفظ می‌شود
ERR-SET-35A VAL / SEV-2 واریز بانکی فعال است اما مقصد کارت، حساب یا شبا معتبر نیست Field + Summary FIX_INPUT؛ روش بانکی فعال نمی‌شود
ERR-SET-35B VAL / SEV-3 قبض فاقد مبلغ، تاریخ، شماره پیگیری یا فایل معتبر است Field + Summary FIX_INPUT؛ قبض ارسال نمی‌شود
ERR-SET-35C CON / SEV-2 قبض هنگام تصمیم مدیر قبلاً تعیین تکلیف شده است Stale State RELOAD؛ تصمیم دوم اعمال نمی‌شود
ERR-SET-35D SEC / SEV-2 Actor اجازه تأیید یا رد قبض را ندارد Guard Message CONTACT_ADMIN؛ قبض و مانده بدون تغییر می‌مانند
ERR-SET-35E TRN / SEV-1 Payment ثبت شده اما Apply روی Unit Ledger کامل نشده است Pending Result + Reference RETRY اتمیک؛ Payment یا کاهش مانده تکراری ایجاد نمی‌شود

جزئیات خطاهای بانکی و تسویه در ماژول مالی تعریف می‌شوند.

قواعد قبض واریز بانکی:

  • ثبت یا ارسال قبض، مانده واحد را تغییر نمی‌دهد.
  • فقط وضعیت APPROVED می‌تواند وارد عملیات Apply شود.
  • تأیید، ثبت Payment و کاهش مانده باید idempotent و قابل بازیابی باشند.
  • رد یا نیاز به اصلاح باید دلیل قابل اقدام داشته باشد.
  • اطلاعات حساب و تصویر قبض در پیام عمومی و Log خام نمایش داده نمی‌شوند.

۵.۱۰. امکانات

شناسه دسته / شدت شرط نمایش بازیابی و اثر داده
ERR-SET-36 VAL / SEV-3 مدل استفاده مشخص نیست Field Error FIX_INPUT؛ Facility در Draft می‌ماند
ERR-SET-37 VAL / SEV-3 گروه، قیمت یا محدودیت لازم ناقص است Summary + Field FIX_INPUT؛ Facility در Draft می‌ماند
ERR-SET-38 SEC / SEV-2 تأییدکننده Permission معتبر ندارد Guard Message RESOLVE_DEPENDENCY؛ Approval Flow فعال نمی‌شود
ERR-SET-39 TRN / SEV-2 ذخیره یا فعال‌سازی Facility شکست خورده Banner RETRY؛ تنظیمات قبلی حفظ و Facility فعال نمی‌شود

۶. Catalog خطاهای عضویت

۶.۱. ساخت و ارسال Invitation

این خطاها در Context همان ردیف شخص در لیست واحدها، جزئیات واحد، تیم مدیریت یا کارکنان نمایش داده می‌شوند؛ صفحه مرکزی Invitation وجود ندارد.

شناسه دسته / شدت شرط نمایش بازیابی و اثر داده
ERR-MEM-01 VAL / SEV-3 موبایل خالی یا نامعتبر Row Error FIX_INPUT؛ شخص از Batch حذف می‌شود
ERR-MEM-02 BUS / SEV-2 موجودی SMS برای Batch کافی نیست Blocking Summary RESOLVE_DEPENDENCY؛ هیچ ارسال آغاز نمی‌شود
ERR-MEM-03 SEC / SEV-2 Role یا Scope نامعتبر Row Error FIX_INPUT؛ Envelope مربوط ساخته یا ارسال نمی‌شود
ERR-MEM-04 PAR / SEV-2 برخی SMSها ناموفق Batch Result موفق‌ها حفظ و فقط ناموفق‌ها Retry می‌شوند
ERR-MEM-05 CON / SEV-3 Envelope در انتظار تکراری Existing Record State USE_EXISTING؛ Envelope جدید ساخته نمی‌شود
ERR-MEM-06 BUS / SEV-2 Envelope پیش از استفاده لغو شده Canceled State Invitation جدید لازم است؛ Membership حفظ می‌شود

۶.۲. ورود و تصمیم Role

شناسه دسته / شدت شرط نمایش بازیابی و اثر داده
ERR-MEM-07 BUS / SEV-3 موبایل در هیچ رکورد معتبر شناخته نشده Routing State Account جدید ساخته نمی‌شود و کاربر به SET-01 می‌رود
ERR-MEM-08 VAL / SEV-3 OTP نامعتبر یا منقضی Inline Error FIX_INPUT یا Resend؛ Account Link و Role فعال نمی‌شوند
ERR-MEM-09 BUS / SEV-2 Invitation لغو شده Canceled State Invitation جدید توسط مدیر لازم است
ERR-MEM-10 CON / SEV-2 Role یا Scope پس از ارسال نامعتبر شده Per-role Error Role فعال نمی‌شود و مدیر باید اصلاح و ارسال کند
ERR-MEM-11 SEC / SEV-2 شخص تعلق ساختمان یا واحد را رد می‌کند Dispute Confirmation Contact Point DISPUTED و دسترسی حساس متوقف می‌شود
ERR-MEM-12 TRN / SEV-1 ذخیره بخشی از تصمیم‌های چندRole شکست خورده Full-page Retry State تصمیم ناقص نهایی نمی‌شود؛ Retry idempotent

قواعد:

  • خطای یک Role نباید Role پذیرفته‌شده مستقل را بدون دلیل Rollback کند؛ اما Commit تصمیم‌های همان Submit باید اتمیک باشد.
  • جزئیات رابطه مورد اختلاف در Preview عمومی نمایش داده نمی‌شود.
  • Building Membership و Unit Relationship با رد Role حذف نمی‌شوند.

۶.۳. Resend، Edit و Cancel

شناسه دسته / شدت شرط نمایش بازیابی و اثر داده
ERR-MEM-13 BUS / SEV-3 کمتر از ۲۴ ساعت از ارسال قبلی گذشته Disabled Action + زمان باقی‌مانده WAIT_RETRY
ERR-MEM-14 BUS / SEV-2 موجودی SMS کافی نیست Blocking Banner RESOLVE_DEPENDENCY؛ Attempt آغاز نمی‌شود
ERR-MEM-15 CON / SEV-2 Envelope لغو یا نامعتبر شده Invalid State Invitation جدید، در صورت مجازبودن
ERR-MEM-16 VAL / SEV-3 لغو Role حساس بدون دلیل Field Error FIX_INPUT؛ Cancel ثبت نمی‌شود
ERR-MEM-17 PAR / SEV-2 Resend گروهی بخشی ناموفق Batch Result موفق‌ها حفظ و فقط ناموفق‌ها Retry می‌شوند

۶.۴. پایان و جایگزینی رابطه

خطاهای رابطه مالک، مستأجر، ساکن و Household از مسیر «لیست واحدها ← جزئیات واحد ← افراد و نقش‌ها» نمایش داده می‌شوند.

شناسه دسته / شدت شرط نمایش بازیابی و اثر داده
ERR-MEM-18 VAL / SEV-3 Effective Date خالی یا نامعتبر Field Error FIX_INPUT؛ پایان یا جایگزینی ثبت نمی‌شود
ERR-MEM-19 BUS / SEV-2 Household ناقص تعیین شده Review State REVIEW_CONFIRM؛ آرشیو گروهی نهایی نمی‌شود
ERR-MEM-20 CON / SEV-2 رابطه مالک جدید با رابطه موجود تداخل دارد Conflict State FIX_INPUT یا RELOAD؛ انتقال ثبت نمی‌شود
ERR-MEM-21 BUS / SEV-2 Task یا Shift فعال تعیین تکلیف نشده Dependency List RESOLVE_DEPENDENCY؛ جایگزینی متوقف می‌شود
ERR-MEM-22 TRN / SEV-1 Close Old موفق ولی Create New شکست خورده توقف امن و Reference Rollback یا Retry اتمیک؛ وضعیت ناقص نهایی نمی‌شود

۶.۵. تغییر Building Admin

شناسه دسته / شدت شرط نمایش بازیابی و اثر داده
ERR-MEM-23 VAL / SEV-3 مدارک Ticket ناقص Needs Info State FIX_INPUT؛ بررسی نهایی انجام نمی‌شود
ERR-MEM-24 VAL / SEV-2 شخص پیشنهادی موبایل معتبر یا شناخته‌شده ندارد Field + Summary FIX_INPUT؛ Role Pending ساخته نمی‌شود
ERR-MEM-25 BUS / SEV-2 مدیر جدید Role را نپذیرفته Waiting State Reminder یا معرفی شخص جدید؛ مدیر فعلی حفظ می‌شود
ERR-MEM-26 TRN / SEV-1 Revoke و Activate اتمیک شکست خورده توقف امن و Reference Rollback به مدیر قبلی و Retry امن
ERR-MEM-27 CON / SEV-1 درخواست‌های متعارض وجود دارند Under Review State CONTACT_SUPPORT و بررسی دستی؛ تصمیم خودکار ممنوع

۷. Error Patternهای اصلی

۷.۱. Validation Form

  1. تمام فیلدها بررسی می‌شوند.
  2. Error Summary در ابتدای فرم نمایش داده می‌شود.
  3. هر مورد به فیلد مربوط لینک می‌شود.
  4. ورودی‌های معتبر حفظ می‌شوند.
  5. Focus به Summary یا اولین خطا منتقل می‌شود.

۷.۲. Pending Payment

flowchart TD accTitle: رفتار نتیجه نامشخص پرداخت accDescr: سامانه تا اعتبارسنجی قطعی، پرداخت را موفق یا ناموفق اعلام نمی‌کند و ساختمان ایجاد نمی‌شود UNKNOWN(["نتیجه پرداخت نامشخص"]):::pending PAGE["نمایش صفحه «در حال بررسی پرداخت»"]:::system RETRY["اعتبارسنجی مجدد با همان Payment ID"]:::system RESULT{"نتیجه قطعی شد؟"}:::decision SUCCESS(["ثبت موفق و آغاز Provisioning"]):::success FAILED(["نمایش شکست و امکان Payment جدید"]):::error WAIT["حفظ Pending و ادامه بررسی"]:::pending UNKNOWN --> PAGE --> RETRY --> RESULT RESULT -->|"موفق"| SUCCESS RESULT -->|"ناموفق"| FAILED RESULT -->|"خیر"| WAIT WAIT -.-> RETRY classDef system fill:#F3F4F6,stroke:#6B7280,color:#111827; classDef decision fill:#FEF3C7,stroke:#D97706,color:#78350F,stroke-width:2px; classDef pending fill:#F3E8FF,stroke:#9333EA,color:#581C87; classDef success fill:#DCFCE7,stroke:#16A34A,color:#14532D,stroke-width:2px; classDef error fill:#FEE2E2,stroke:#DC2626,color:#7F1D1D;

۷.۳. Partial Batch

  • نتیجه هر گیرنده مستقل ثبت می‌شود.
  • موفقیت‌ها Rollback نمی‌شوند.
  • Summary تعداد موفق، ناموفق و حذف‌شده را نمایش می‌دهد.
  • Retry فقط برای آخرین مجموعه ناموفق‌هاست.
  • Envelope یا Role Assignment تکراری ساخته نمی‌شود.

۷.۴. Atomic Replacement

  • تمام Dependencyها پیش از Commit بررسی می‌شوند.
  • Close Old و Create New یک نتیجه واحد دارند.
  • شکست میانی به Rollback یا وضعیت قابل Retry منجر می‌شود.
  • History و Ledger بازنویسی نمی‌شوند.

۸. Edge Caseهای سراسری

۸.۱. Double-submit

  • دکمه Action پس از Submit در حالت Processing قرار می‌گیرد.
  • Backend همچنان Idempotency را اعمال می‌کند.
  • پاسخ درخواست تکراری نتیجه Operation قبلی را برمی‌گرداند.

۸.۲. Refresh یا بستن صفحه

  • Draft و وضعیت Server-side حفظ می‌شوند.
  • بازگشت کاربر، State جاری را Fetch می‌کند.
  • پرداخت یا Provisioning از روی URL یا State محلی نتیجه‌گیری نمی‌شود.

۸.۳. Offline

  • Action حساس در حالت Offline نهایی نمی‌شود.
  • داده محلی فقط Draft است.
  • پس از اتصال، داده جاری Server دریافت و Conflict بررسی می‌شود.

۸.۴. داده منسوخ

  • هر تغییر حساس نسخه یا Updated At دارد.
  • در Conflict، داده جدید بدون اطلاع کاربر بازنویسی نمی‌شود.
  • کاربر اثر تغییر را می‌بیند و دوباره تأیید می‌کند.

۸.۵. تغییر Permission در میانه Action

  • Permission هنگام Submit دوباره بررسی می‌شود.
  • حذف Permission باعث رد امن Action می‌شود.
  • داده حساس از پاسخ خطا حذف می‌شود.
  • Draft غیرحساس، در صورت مجازبودن، می‌تواند حفظ شود.

۸.۶. تغییر Building Context

  • Resource ID و Scope با Current Context تطبیق داده می‌شوند.
  • Action ساختمان قبلی در Context جدید اجرا نمی‌شود.
  • تغییر Context، عملیات مالی یا Import در جریان را تکرار نمی‌کند.

۸.۷. Effective Date و منطقه زمانی

  • تاریخ مؤثر بر اساس Timezone ساختمان تفسیر می‌شود.
  • تغییر ساعت دستگاه کاربر مبنای اجرای پایان رابطه نیست.
  • تداخل بازه‌ها Server-side بررسی می‌شود.

۸.۸. Expiry دسترسی پشتیبانی

  • Support Grant هنگام هر Action بررسی می‌شود.
  • اگر Grant در میانه فرم منقضی شود، Submit رد امن دارد.
  • Action کامل‌شده پیش از Expiry حفظ و Audit می‌شود.
  • Draft حساس پس از Expiry قابل Commit نیست.

۸.۹. کمبود موجودی هم‌زمان SMS

  • موجودی در زمان تأیید و زمان Dispatch بررسی می‌شود.
  • اگر بین این دو تغییر کند، Attemptهای آغازنشده ساخته نمی‌شوند.
  • Batch نتیجه شفاف دارد و ارسال‌های موفق حفظ می‌شوند.

۸.۱۰. Contact Point تکراری یا مورد اختلاف

  • موبایل تکراری Account جدید نمی‌سازد.
  • DISPUTED برای محتوای حساس قابل استفاده نیست.
  • اصلاح شماره، رکورد مالی یا رابطه تاریخی را حذف نمی‌کند.

۹. Logging و Monitoring

حداقل داده فنی

  • Error Category و Severity؛
  • Correlation ID؛
  • Operation و Resource Type؛
  • Actor Type و Scope Mask‌شده؛
  • Retry Count؛
  • Provider Result Mask‌شده؛
  • State قبل و بعد؛
  • Timestamp.

داده‌های ممنوع در Log خام

  • OTP؛
  • Access Token؛
  • اطلاعات کامل بانکی؛
  • متن مدارک؛
  • شماره موبایل کامل؛
  • Permission Payload حساس بدون Mask؛
  • Stack Trace در پاسخ کاربر.

Alertهای عملیاتی

Error Alert
ERR-SET-16 فوری مالی
ERR-SET-17 تا ERR-SET-19 Provisioning و عبور از SLA
ERR-MEM-12 ناسازگاری تصمیم چندRole
ERR-MEM-22 شکست تراکنش جایگزینی
ERR-MEM-26 شکست Switch مدیر
ERR-MEM-27 Conflict نیازمند بررسی دستی

۱۰. Correlation و Support Reference

  • هر خطای غیرمنتظره Reference ID غیرقابل حدس دارد.
  • Reference ID به Correlation داخلی متصل است، اما شناسه فنی Resource را افشا نمی‌کند.
  • کاربر برای خطای قابل حل با اصلاح ورودی به Reference ID نیاز ندارد.
  • Support باید با Reference ID، Scope و Audit مجاز بتواند رخداد را پیدا کند.

۱۱. Transitionهای ممنوع هنگام خطا

  • ساخت Account یا Building برای جبران خطای Routing؛
  • موفق اعلام‌کردن Payment نامشخص؛
  • دریافت وجه مجدد برای Retry Provisioning؛
  • کاهش مانده Unit Ledger با قبض SUBMITTED، UNDER_REVIEW یا REJECTED؛
  • تأیید دوباره قبضی که Payment آن قبلاً اعمال شده است؛
  • ثبت بخشی Import دارای خطای مسدودکننده؛
  • فعال‌سازی Role فاقد Membership یا Acceptance؛
  • فعال‌سازی Permission حساس بدون تأیید؛
  • Rollback ارسال‌های موفق Batch به‌دلیل شکست بخشی؛
  • حذف Person برای حل Conflict رابطه؛
  • باقی‌گذاشتن ساختمان بدون Building Admin پس از شکست Switch؛
  • نمایش جزئیات فنی یا Resource نامرتبط در Authorization Error.

۱۲. تصمیم‌های باز

شناسه موضوع وضعیت
OPEN-ERR-01 حد Retry و Backoff اعتبارسنجی Payment نیازمند SLA عملیاتی
OPEN-ERR-02 SLA و Escalation Provisioning نیازمند تصمیم عملیات
OPEN-ERR-03 محدودیت حجم، فرمت و تعداد ردیف Excel پیش از پیاده‌سازی Import تعیین شود
OPEN-ERR-04 سیاست نگهداری Draft آفلاین به معماری Client وابسته است
OPEN-ERR-05 بازه مجاز Effective Date گذشته نیازمند تصمیم محصول و بررسی حقوقی
OPEN-ERR-06 Copy نهایی خطاها در Content Design نهایی شود

۱۳. معیارهای پذیرش

  • Error Codeهای سناریوهای فعلی، از جمله قبض واریز بانکی، پوشش داده شده‌اند.
  • Pending، Partial Failure، Warning و Error از هم جدا شده‌اند.
  • اثر هر خطا بر داده و State مشخص است.
  • مسیر بازیابی هر خطا تعریف شده است.
  • خطاهای مالی و اتمیک توقف امن و Escalation دارند.
  • Validation داده معتبر فرم را پاک نمی‌کند.
  • Retry رکورد یا پرداخت تکراری ایجاد نمی‌کند.
  • Import دارای خطای مسدودکننده All-or-Nothing است.
  • Batch پیامک موفقیت‌های معتبر را حفظ می‌کند.
  • Permission هنگام Submit دوباره بررسی می‌شود.
  • خطاهای امنیتی اطلاعات حساس افشا نمی‌کنند.
  • Edge Caseهای Offline، Refresh، Double-submit و Concurrency ثبت شده‌اند.
  • SLA و Retry Policyهای عملیاتی نهایی شوند.
  • محدودیت‌های Excel تعیین شوند.
  • Copy نهایی در Content Design بازبینی شود.

۱۴. منابع

بازگشت