خطاها و موارد خاص
وضعیت سند
آماده بازبینی محصول — شامل تمام خطاهای 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های اصلی
- تمام فیلدها بررسی میشوند.
- Error Summary در ابتدای فرم نمایش داده میشود.
- هر مورد به فیلد مربوط لینک میشود.
- ورودیهای معتبر حفظ میشوند.
- 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 نتیجه شفاف دارد و ارسالهای موفق حفظ میشوند.
- موبایل تکراری 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 نهایی شود |
۱۳. معیارهای پذیرش
۱۴. منابع
بازگشت