خطاها و موارد خاص
وضعیت سند
آماده بازبینی محصول — شامل تمام خطاهای ERR-SET-01 تا ERR-SET-50 و 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 با پیام قابل اقدام متوقف شود.
- تصمیم کاربر در
2026-09-09: اگر ظرفیت پردازش Excel مشغول باشد، درخواست پذیرفتهشده در صف منتظر میماند و پس از آزاد شدن ظرفیت، بدون ارسال دوباره کاربر ادامه مییابد. تعداد پردازش همزمان و مهلت کل انتظار و پردازش از environment استقرار تنظیم میشوند.
- انتظار فقط تا مهلت درخواست معتبر است. لغو Client، پایان مهلت یا صف پر اثر ثبت جزئی ندارد؛ وضعیت ثبتشده قبل از قطع ارتباط نباید از روی نتیجه شبکه حدس زده شود و بازیابی با همان شناسه تکرار انجام میشود. صف موقت است و با restart حفظ نمیشود.
۵.۷. تیم مدیریت
| شناسه |
دسته / شدت |
شرط |
نمایش |
بازیابی و اثر داده |
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؛ انتخاب ساعتی، سانس ثابت یا روز کامل |
ERR-SET-37 |
VAL / SEV-3 |
روز، بازه، سانس یا مبلغ الزامی مدل ناقص است |
Summary + Field |
FIX_INPUT؛ Facility در Draft میماند |
ERR-SET-38 |
VAL / SEV-2 |
سانسها یا بازههای زمانی همپوشانی دارند |
Inline + Summary |
FIX_INPUT؛ قواعد زمانبندی ذخیره نمیشوند |
ERR-SET-39 |
TRN / SEV-2 |
ذخیره یا فعالسازی Facility شکست خورده |
Banner |
RETRY؛ تنظیمات قبلی حفظ و Facility فعال نمیشود |
۵.۱۱. اطلاعات تکمیلی
| شناسه |
دسته / شدت |
شرط |
نمایش |
بازیابی و اثر داده |
ERR-SET-40 |
VAL / SEV-3 |
کدپستی یا یکی از فیلدهای واردشده نشانی نامعتبر است |
Field Error |
FIX_INPUT؛ کاربر میتواند اصلاح کند یا بخش اختیاری را رد کند |
ERR-SET-41 |
VAL / SEV-3 |
فرمت تصویر خارج از jpg، png یا webp یا حجم آن بیش از ۲ مگابایت است |
Upload Error |
FIX_INPUT؛ فایل رد و انتخابهای قبلی حفظ میشوند |
ERR-SET-42 |
TRN / SEV-3 |
بارگذاری تصویر مجاز شکست خورده است |
Upload Error |
RETRY؛ انتخاب فایل حفظ و مسیر آواتار یا Fallback نیز در دسترس میماند |
ERR-SET-43 |
TRN / SEV-2 |
ذخیره نشانی، تصویر یا تصمیم ردکردن بخش شکست خورده است |
Banner |
RETRY؛ Draft حفظ و بخش تعیین تکلیفشده محسوب نمیشود |
۵.۱۲. ثبت دستی واحد و افراد
| شناسه |
دسته / شدت |
شرط |
نمایش |
بازیابی و اثر داده |
ERR-SET-44 |
VAL / SEV-3 |
مساحت واحد صفر، منفی یا خارج از محدوده مجاز است |
Field Error |
FIX_INPUT؛ Draft مرحله اول حفظ میشود |
ERR-SET-45 |
VAL / SEV-2 |
«دارای ساکن» بدون تعداد ثبت شده، «بدون ساکن» با رابطه سکونت همراه است یا روابط سکونت از تعداد اعلامشده بیشترند |
Field + Summary |
FIX_INPUT؛ اصلاح وضعیت، تعداد یا افراد پیش از تأیید نهایی |
ERR-SET-46 |
VAL / SEV-2 |
سهم مالک وارد نشده یا مجموع سهمهای فعال از ۶ دنگ یا ۱۰۰٪ بیشتر است |
Field + Summary |
FIX_INPUT؛ مالکیت نامعتبر ذخیره نمیشود |
ERR-SET-47 |
CON / SEV-2 |
شخصی با موبایل یا شناسه ملی یکسان از قبل وجود دارد |
Match Sheet |
SELECT_EXISTING؛ اتصال به Person موجود یا اصلاح داده |
ERR-SET-48 |
VAL / SEV-3 |
نوع قبض یا شناسه لازم نامعتبر یا تکراری است |
Field Error |
FIX_INPUT؛ فقط قبض در Draft باقی میماند |
ERR-SET-49 |
VAL / SEV-3 |
نوع حیوان خانگی مشخص نشده است |
Field Error |
FIX_INPUT؛ سایر اطلاعات فرم حفظ میشوند |
ERR-SET-50 |
TRN / SEV-2 |
ثبت نهایی واحد، اشخاص یا روابط شکست خورده است |
Result Banner |
RETRY اتمیک؛ Draft دو مرحله حفظ و داده ناقص ایجاد نمیشود |
اطلاعات تکمیلی واحد و شخص اختیاریاند و خالیبودن آنها خطا نیست.
۵.۹. برنامه شارژ و حساب ساختمان
| شناسه |
دسته/شدت |
وضعیت |
الگوی UI |
اقدام بازیابی |
ERR-CHG-01 |
VAL / SEV-2 |
واحد بدون مبلغ مؤثر |
Inline Summary |
بازگشت به روش محاسبه و تعیین مبلغ |
ERR-CHG-02 |
CON / SEV-2 |
واحد عضو چند گروه مؤثر است |
Inline Row |
انتخاب یک گروه یا ثبت Override |
ERR-CHG-03 |
CAL / SEV-2 |
جمع سهم واحدها با کل هزینه برابر نیست |
Blocking Banner |
بازبینی گردکردن و قواعد تخصیص |
ERR-CHG-04 |
VAL / SEV-2 |
مبنای ترکیبی بدون فرمول یا وزن است |
Inline Field |
انتخاب یک مبنا یا تکمیل فرمول |
ERR-CHG-05 |
VAL / SEV-2 |
سیاست واحد خالی برای قبض نفرمحور مشخص نیست |
Inline Field |
انتخاب سهم صفر، حداقل یا دستی |
ERR-CHG-06 |
VAL / SEV-2 |
حساب، کارت یا شبا نامعتبر است |
Inline Field |
اصلاح مقصد دریافت |
ERR-CHG-07 |
TRN / SEV-3 |
ذخیره برنامه شکست خورده است |
Result Sheet |
حفظ Draft و Retry امن |
ERR-CHG-08 |
CON / SEV-2 |
واحدها یا نفرات پس از Preview تغییر کردهاند |
Stale Banner |
ساخت Snapshot جدید و محاسبه مجدد |
۶. 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 نهایی شود |
۱۳. معیارهای پذیرش
۱۴. منابع
بازگشت