Durasi: 12 menit | Block: 2
🧠 Kenapa Error Handling Penting
Tanpa error handling:
Workflow error → data hilang → kamu ga tahu → masalah
Dengan error handling:
Workflow error → retry otomatis → kalau masih fail → fallback → kamu dapat notif🛡️ Error Handling Strategies
1. Retry on Fail (Per Node)
Di setiap node → Settings → "Retry On Fail"
- Max retries: 3
- Wait between retries: 1000ms (1 detik)Kapan: API yang kadang timeout, rate limit sementara.
2. Error Trigger (Workflow-Level)
Settings Workflow → "Error Workflow"
- Pilih workflow lain yang jalan kalau ada errorBuild Error Workflow:
[Error Trigger]
→ [Set Node: Format Error]
→ [Slack/Email: Alert ke admin]Error data yang tersedia:
json
{
"execution": { "id": "1234", "url": "https://..." },
"workflow": { "name": "Lead Router", "id": "5678" },
"node": { "name": "Send WhatsApp" },
"error": { "message": "API timeout after 30000ms" }
}3. Fallback Path (Manual)
[HTTP Request: API Call]
├── Success → Continue normal flow
└── Error → [Set Node: Fallback data] → Continue with defaultCaranya: Tambah node settings "Continue on Fail".
4. Try-Catch Pattern
[Node A] → (Continue on Fail: true)
│
▼
[If Node: Check if error]
├── TRUE ($json.error exists) → [Error Handler Path]
└── FALSE → [Normal Path]📊 Logging Best Practices
Option A: Execution Log (Built-in)
n8n → Executions tab → lihat semua run
- Filter: success / error / waiting
- Klik execution → lihat data di setiap nodeOption B: Google Sheets Log
Di setiap workflow, tambah logging node:
[Set Node: Create Log Entry]
→ [Google Sheets: Append Log Row]
Log fields:
| Timestamp | Workflow | Node | Status | Error Message | Input Data |Option C: Slack/Discord Alert
Kalau error → kirim alert real-time ke channel monitoring:
[Error Trigger]
→ [Slack: #workflow-errors]
Message: "❌ Error di workflow '\{{ workflow.name }}'
node '\{{ node.name }}': \{{ error.message }}"🏗️ Production Checklist
- [ ] Setiap API node punya retry (max 3)
- [ ] Error workflow terhubung
- [ ] Fallback path untuk critical nodes
- [ ] Logging aktif (Sheets/Slack)
- [ ] Execution retention diset (jangan simpan selamanya)
- [ ] Test dengan data yang bikin error (empty, null, wrong format)
⚠️ Common Anti-Patterns
- ❌ Error handling cuma di 1 node → harus di semua critical nodes
- ❌ Logging tapi ga pernah cek → set alert, bukan cuma log
- ❌ Retry tanpa wait → makin membebani API yang lagi down
- ❌ Ignore execution history → bisa penuh disk kalau ga di-clean