এই ভলিউমে · ভলিউম 14
পরিশিষ্ট
এরর কোড স্ট্যাটাস কোড

অধ্যায় ১৪.১ — এরর কোড

১. উদ্দেশ্য

ক্যানোনিক্যাল এরর কোড ক্যাটালগ — API responses, logs, UI dialogs, ইন্টিগ্রেশন ত্রুটি সব এক স্থানে।

২. ফরম্যাট

<DOMAIN>_<CONDITION>

উদাহরণ: BOOKING_HOLD_EXPIRED, JE_UNBALANCED, PAYMENT_GATEWAY_DECLINED

৩. প্রতিটি কোডে

  • HTTP status (যদি API)
  • Severity: INFO / WARN / ERROR / CRITICAL
  • retry_advice: non_retryable / retryable_after_short / retryable_after_long / requires_user_action

৪. ডোমেইন

ডোমেইন কভার
AUTH Login, MFA, password
PERM Authorization
FIELD Input validation
BOOKING Booking-এ ত্রুটি
TICKETING Issuance
REFUND Refund flow
CUSTOMER Customer master
SUPPLIER Supplier master
JE Journal entries
INVOICE Invoicing
PAYMENT Payments
RECON Reconciliation
TAX Tax calculation
PERIOD Period close
MEMO ADM/ACM
RECOGNITION Revenue recognition
COMMISSION Commission
BSP BSP integration
IMPORT Data imports
INTERNAL System errors

৫. মূল উদাহরণ

AUTH

কোড HTTP Severity Retry
AUTH_INVALID_CREDENTIALS 401 WARN requires_user_action
AUTH_MFA_REQUIRED 401 INFO requires_user_action
AUTH_MFA_INVALID 401 WARN requires_user_action
AUTH_ACCOUNT_LOCKED 401 WARN retryable_after_long
AUTH_TOKEN_EXPIRED 401 INFO requires_user_action
AUTH_TOKEN_INVALID 401 ERROR non_retryable

BOOKING

কোড HTTP Severity Retry
BOOKING_HOLD_EXPIRED 410 WARN non_retryable
BOOKING_PRICE_CHANGED 409 WARN requires_user_action
BOOKING_NOT_FOUND 404 ERROR non_retryable
BOOKING_INVALID_STATE_TRANSITION 409 ERROR non_retryable
BOOKING_CUSTOMER_CREDIT_EXCEEDED 422 WARN requires_user_action

JE

কোড HTTP Severity Retry
JE_UNBALANCED 422 CRITICAL non_retryable
JE_PERIOD_CLOSED 422 ERROR non_retryable
JE_ACCOUNT_INACTIVE 422 ERROR non_retryable
JE_FX_RATE_MISSING 422 ERROR requires_user_action

PAYMENT

কোড HTTP Severity Retry
PAYMENT_GATEWAY_DECLINED 402 WARN non_retryable
PAYMENT_GATEWAY_TIMEOUT 504 ERROR retryable_after_short
PAYMENT_AMOUNT_MISMATCH 422 ERROR non_retryable
PAYMENT_DUPLICATE 409 INFO non_retryable
PAYMENT_INVOICE_OVERAPPLIED 422 ERROR non_retryable

INTERNAL

কোড HTTP Severity Retry
INTERNAL_DB_TIMEOUT 504 ERROR retryable_after_short
INTERNAL_GDS_TIMEOUT 504 ERROR retryable_after_short
INTERNAL_RATE_LIMIT 429 WARN retryable_after_short
INTERNAL_MAINTENANCE 503 INFO retryable_after_long

৬. ব্যবহারকারীদের নির্দেশনা

  • Switch on code (message নয় — translations পরিবর্তন হয়)
  • Unknown code tolerate — পুরাতন code default fallback-এ পাঠান
  • retry_advice মেনে চলুন:
  • non_retryable: কখনো retry না
  • retryable_after_short: 1-5 সেকেন্ড backoff
  • retryable_after_long: 1-15 মিনিট
  • requires_user_action: end-user input প্রয়োজন

৭. সাধারণ ফাঁদ

  • ⚠️ HTTP status-এ over-rely (codes more specific)
  • ⚠️ Indefinite retry — code respect করুন
  • ⚠️ Error message log + display কিন্তু code রেকর্ড না — debugging কঠিন