الأخطاء

كل الأخطاء تتبع نفس البنية.

بنية الـ Error Response

أي خطأ من NestJS يأتي بهذه الصيغة:

{
  "statusCode": 400,
  "message": "name is required",
  "error": "Bad Request"
}

أحياناً message يكون array (مثل validation errors متعدّدة):

{
  "statusCode": 400,
  "message": ["name should not be empty", "triggerType must be a valid enum"],
  "error": "Bad Request"
}

أكواد HTTP الشائعة

الكودالرسالةالسبب
200OKطلب ناجح + body في الاستجابة.
201Createdمورد جديد أُنشئ بنجاح (POST).
400Bad Requestparameters ناقصة أو غير صحيحة.
401UnauthorizedToken مفقود أو منتهي.
403ForbiddenToken صحيح لكن المستخدم ما يستطيع هذه العملية.
404Not Foundالمورد غير موجود.
409Conflictتعارض في الحالة (مثل: workflow غير نشط).
429Too Many Requestsتجاوزت rate limit. راجع حدود الطلبات.
500Internal Server Errorخطأ غير متوقع. الـ logs تشخّصه.
502Bad GatewayBackend متوقّف أو الـ tunnel مكسور.

التعامل مع الأخطاء (Best Practices)

  • تحقّق من statusCode، لا تحلّل message — الـ wording يتغيّر.
  • retry على 5xx و 429 — مع exponential backoff.
  • لا تعمل retry على 4xx (إلا 429) — السبب من جهة العميل.
  • للـ 401 — أعد المصادقة (احصل على token جديد).