تریگر خطا
Error Trigger
مدیریت خطا: Error Handling، اعلان خطا و Recovery
نمای کلی
نود Error Trigger چیست؟
نود Error Trigger یک Trigger نود است که وقتی Workflow دیگری با خطا مواجه شود، فعال میشود.
نحوه کار:
- 1یک Error Workflow بسازید با Error Trigger
- 2در تنظیمات Workflow اصلی، Error Workflow را مشخص کنید
- 3وقتی خطا رخ دهد، Error Workflow فعال میشود
دادههای دریافتی:
- execution.id: شناسه اجرا
- execution.url: لینک به اجرای ناموفق
- execution.error: شیء خطا
- execution.error.message: پیام خطا
- execution.error.node: نود خطادهنده
- execution.lastNodeExecuted: آخرین نود اجراشده
- workflow.id: شناسه Workflow
- workflow.name: نام Workflow
سطوح Error Handling در n8n:
- 1Node Level: Continue on Fail (ادامه با خطا)
- 2Workflow Level: Error Workflow (اجرای Workflow جداگانه)
- 3Global Level: Error Workflow پیشفرض
تفاوت با Continue on Fail:
- Continue on Fail: خطا در یک نود، بقیه ادامه دارند
- Error Trigger: Workflow جداگانه اجرا میشود با اطلاعات کامل خطا
احراز هویت
بدون نیاز به احراز هویت - نود Error Trigger یک نود داخلی n8n است. در تنظیمات Workflow اصلی، Error Workflow انتخاب میشود.
عملیاتهای موجود
دریافت خطا
فعال شدن هنگام بروز خطا در Workflow مرتبط. دادههای خطا شامل پیام، نود و زمان.
ارسال اعلان خطا
الگوی ارسال اعلان خطا از طریق Email، Slack، Telegram یا Discord.
لاگ خطا
ثبت خطا در دیتابیس، فایل یا سرویس Logging (مثل Sentry, Datadog).
Retry خودکار
تلاش مجدد برای اجرای Workflow ناموفق. با تأخیر بین تلاشها.
اقدام اصلاحی
اجرای اقدام جایگزین هنگام خطا. مثلاً ذخیره در صف، ارسال به سیستم backup.
فیلتر خطا
فیلتر خطاها بر اساس نوع، نود یا پیام. فقط خطاهای خاص اعلان شوند.
کاربردهای متداول
موارد استفاده رایج
۱. اعلان خطا در Slack
Error Trigger > ساخت پیام (Workflow name + Error message + Time) > Slack Message در #alerts.
۲. اعلان ایمیل
Error Trigger > ساخت HTML ایمیل با جزئیات خطا > ارسال به تیم DevOps.
۳. لاگ در دیتابیس
Error Trigger > Insert در جدول error_logs (workflow, node, message, timestamp, input_data).
۴. ارسال به Sentry/Datadog
Error Trigger > HTTP Request به Sentry API > ثبت Exception با context.
۵. Retry خودکار
Error Trigger > IF (retryCount < 3) > Wait 5s > Execute Workflow (مجدد) > else > اعلان.
۶. Fallback Pattern
Error Trigger > IF (API خطا) > استفاده از API جایگزین > else > لاگ.
۷. اعلان Telegram
Error Trigger > Format message > Telegram Bot > ارسال به گروه مانیتورینگ.
۸. Ticket خودکار
Error Trigger > ساخت Ticket در Jira/Freshdesk با جزئیات خطا > Assign به تیم.
۹. Dashboard خطاها
Error Trigger > ذخیره در Google Sheets > Dashboard BI (نمودار خطاها در زمان).
۱۰. Circuit Breaker
Error Trigger > شمارش خطاهای اخیر > IF (errors > threshold) > غیرفعال کردن Workflow > اعلان.
۱۱. Rollback
Error Trigger > شناسایی عملیات ناقص > Undo actions (حذف رکوردهای ناقص) > لاگ.
۱۲. خلاصه خطاهای روزانه
Cron (هر شب) > خواندن خطاهای امروز از DB > ساخت گزارش > ارسال ایمیل خلاصه.
نکات حرفهای
نکات و ترفندها
ساختار Error Workflow ایدهآل
- 1Error Trigger
- 2Edit Fields: استخراج اطلاعات مفید
- 3IF: فیلتر خطاهای مهم
- 4Slack/Email: اعلان
- 5Database: لاگ ثبت
پیام خطای مفید
شامل:
- نام Workflow
- نام نود خطادهنده
- پیام خطا
- زمان وقوع
- لینک به Execution
- داده ورودی (اگر حساس نیست)
سطحبندی خطاها
- Critical: سیستمهای حیاتی (پرداخت، سفارش)
- Error: عملکرد اصلی (ارسال ایمیل، API)
- Warning: عملکرد فرعی (لاگ، آمار)
- هر سطح کانال اعلان متفاوت
الگوی Error Handling جامع
- 1Node Level: Continue on Fail برای نودهای غیرحیاتی
- 2Workflow Level: Error Workflow برای مدیریت مرکزی
- 3Try/Catch: IF نود بعد از عملیات حساس
- 4Monitoring: Dashboard خطاها
Circuit Breaker Pattern
- 1هر خطا شمارش شود (Static Data)
- 2IF errors > 5 in 10 minutes:
- Workflow را Deactivate کنید
- اعلان Critical ارسال کنید
- Manual intervention لازم است
Retry Strategy
- Immediate: تلاش فوری (مشکلات گذرا)
- Fixed Delay: Wait ثابت (مثل 30 ثانیه)
- Exponential Backoff: 1s, 2s, 4s, 8s (API rate limit)
- Circuit Breaker: توقف بعد از N شکست
ادغام با سایر نودها
- Slack/Teams: اعلان خطا
- Email: گزارش خطا
- Telegram: اعلان فوری
- Jira/Freshdesk: Ticket خودکار
- HTTP Request: ارسال به Sentry/Datadog
- Google Sheets: لاگ خطاها
- IF: فیلتر خطاها
- Wait: تأخیر قبل از Retry
بهترین شیوهها
- Error Workflow همیشه ساده باشد
- از سرویسهای Reliable استفاده کنید (Slack > Email)
- اعلانها را Rate Limit کنید
- دادههای حساس را لاگ نکنید
- خطاها را دستهبندی کنید
- Dashboard مانیتورینگ داشته باشید
- Error Workflow را تست کنید
رفع مشکلات
عیبیابی
۱. Error Workflow فعال نمیشود
مشکل: خطا رخ میدهد اما Error Workflow اجرا نمیشود راهحل: Error Workflow باید Active باشد. در تنظیمات Workflow اصلی، Error Workflow انتخاب شده باشد. Error Workflow خودش نباید خطا بدهد.
۲. دادههای خطا خالیاند
مشکل: اطلاعات خطا دریافت نمیشود راهحل: از execution.error.message استفاده کنید. بررسی کنید Workflow اصلی واقعاً خطا داده (نه Continue on Fail).
۳. Error Workflow خودش خطا میدهد
مشکل: حلقه بینهایت خطا راهحل: Error Workflow باید ساده و مطمئن باشد. از Try/Catch pattern استفاده کنید. Error Workflow برای Error Workflow نسازید (n8n جلوگیری میکند).
۴. اعلانهای تکراری
مشکل: یک خطا چندین اعلان تولید میکند راهحل: Deduplication اضافه کنید (بر اساس execution.id). Throttling: حداکثر 1 اعلان در 5 دقیقه.
۵. خطای Timeout اعلان نمیشود
مشکل: Workflow timeout خطا محسوب نمیشود راهحل: در برخی نسخهها timeout خطا تولید نمیکند. از Cron + بررسی آخرین اجرای موفق استفاده کنید.
۶. Error Workflow فقط در Production
مشکل: در Manual test کار نمیکند راهحل: Error Workflow فقط در حالت Production (Active) فعال میشود. در Manual test، خطا مستقیماً نمایش داده میشود.
۷. Volume بالای خطا
مشکل: خطاهای زیاد باعث سیل اعلان میشود راهحل: Rate limiting روی اعلانها. Aggregation: جمعآوری خطاها و ارسال خلاصه هر ساعت.
