Sparround

Xəta idarəsi və error workflow

Xarici sistemlərlə işləyən hər workflow nə vaxtsa sınacaq. Sual onun sınıb-sınmayacağı deyil, sındığını kimin və nə vaxt biləcəyidir.

n8n-də xəta idarəsi üç səviyyədə qurulur:

  • Node səviyyəsi — təkrar cəhd (retry) və xəta baş verəndə davam etmə davranışı
  • Workflow səviyyəsi — Workflow Settings-də error workflow təyin edilir
  • Məntiqi səviyyəStop And Error node-u ilə öz şərtinlə icranı bilərəkdən uğursuz etmək

Error workflow ayrıca bir workflow-dur və Error Trigger node-u ilə başlamalıdır. Əsas workflow uğursuz olanda o işə düşür. Bir error workflow bir neçə workflow üçün istifadə edilə bilər — praktikada mərkəzləşdirilmiş xəbərdarlıq üçün məhz belə qurulur.

json
[
  {
    "execution": {
      "id": "231",
      "url": "https://n8n.example.com/execution/231",
      "retryOf": "34",
      "error": {
        "message": "Example Error Message",
        "stack": "Stacktrace"
      },
      "lastNodeExecuted": "Node With Error",
      "mode": "manual"
    },
    "workflow": {
      "id": "1",
      "name": "Example Workflow"
    }
  }
]

Error Trigger-in aldığı standart data. `execution.id` və `execution.url` icranın bazada saxlanmasını tələb edir; `retryOf` yalnız təkrar cəhdlərdə olur.

Vacib nüans: xəta əsas workflow-un trigger node-unda baş veribsə, error workflow-a gələn data fərqli olur — execution{} hissəsi az məlumat daşıyır, əvəzində trigger{} obyekti gəlir. Səbəb sadədir: workflow ümumiyyətlə icra olunmayıb.

Bu, error workflow-u yazarkən nəzərə alınmalıdır: execution.url sahəsinin həmişə mövcud olduğunu güman etmək səhvdir.

Təkrar cəhd (retry) hər xətaya uyğun deyil. Onu yalnız müvəqqəti xətalarda mənalı hesab et:

  • 429, 5xx, şəbəkə xətası, timeout → təkrar cəhd məntiqlidir
  • 400, 401, 403, 404 → təkrar cəhd faydasızdır; sorğu, credential və ya resurs səhvdir

Səhv sorğunu üç dəfə təkrar göndərmək problemi həll etmir, sadəcə xətanın görünməsini gecikdirir.

VəziyyətDüzgün davranış
100 qeyddən 3-ü sınırNode səviyyəsində "xəta olsa davam et" — uğursuzları ayrıca yola yönləndir və sonda hesabat ver
API müvəqqəti əlçatmazdırNode səviyyəsində retry, aralarında fasilə ilə
Credential-ın vaxtı bitibRetry etmə — dərhal xəbərdarlıq göndər, insan müdaxiləsi lazımdır
Gələn data gözlənilən formada deyilIF ilə erkən yoxla; Stop And Error ilə aydın mesajla dayandır
Bütün proses dayanıbError workflow ilə dərhal bildiriş: hansı workflow, hansı node, icra linki

Səssiz uğursuzluq ən pis haldır. Workflow sınır, heç kim bilmir, iki həftədən sonra kimsə "məlumatlar niyə köhnədir?" deyə soruşur. Ona görə hər produksiya workflow-una error workflow təyin etmək minimum tələbdir — bir dəfə qurulur, sonra bütün workflow-lara bağlanır.

📚 Mənbələr və sənədlər