Troubleshooting
Решение проблем — типичные ошибки
Настройка Error Workflows и graceful error handling в n8n
При разработке workflow важно предусмотреть обработку ошибок. Error Workflow позволяет контролировать реакцию n8n на сбои выполнения.
| Тип | Описание | Пример |
|---|---|---|
| Node Error | Ошибка в конкретной ноде | Неправильные credentials |
| Trigger Error | Ошибка в триггере | Webhook недоступен |
| Memory Error | Нехватка памяти | Обработка больших файлов |
| Timeout | Превышение лимита времени | Долгий API запрос |
| Validation Error | Неверные данные | Отсутствует обязательное поле |
Error Workflow запускается при сбое любого workflow, к которому он привязан.
Создайте новый workflow
Добавьте ноду Error Trigger как первую
Добавьте ноды для обработки ошибок (email, Slack и т.д.)
Сохраните workflow (например, “Error Handler”)
Привяжите к другим workflows
Error Trigger получает подробную информацию о сбое:
[ { "execution": { "id": "231", "url": "https://n8n.example.com/execution/231", "retryOf": "34", "error": { "message": "Example Error Message", "stack": "Stacktrace..." }, "lastNodeExecuted": "HTTP Request", "mode": "manual" }, "workflow": { "id": "1", "name": "My Workflow" } }]| Поле | Описание | Доступность |
|---|---|---|
execution.id | ID выполнения | Если сохранено в БД |
execution.url | Ссылка на выполнение | Если сохранено в БД |
execution.retryOf | ID оригинального выполнения | Только для retry |
execution.error.message | Текст ошибки | Всегда |
execution.error.stack | Stack trace | Всегда |
execution.lastNodeExecuted | Нода с ошибкой | Всегда |
execution.mode | Режим запуска | Всегда |
workflow.id | ID workflow | Всегда |
workflow.name | Название workflow | Всегда |
Если ошибка произошла в триггере (не в обычной ноде), структура данных отличается:
{ "trigger": { "error": { "name": "WorkflowActivationError", "message": "Connection refused", "cause": { "message": "ECONNREFUSED", "stack": "..." }, "timestamp": 1654609328787, "node": { ... } }, "mode": "trigger" }, "workflow": { "id": "1", "name": "My Workflow" }}┌──────────────┐ ┌──────────────┐ ┌──────────────┐│ Error Trigger│───→│ Set │───→│ Slack ││ │ │ (формат msg) │ │ │└──────────────┘ └──────────────┘ └──────────────┘Сообщение в Slack:
:warning: *Ошибка в workflow*
*Workflow:* {{ $json.workflow.name }}*Нода:* {{ $json.execution.lastNodeExecuted }}*Ошибка:* {{ $json.execution.error.message }}*Ссылка:* {{ $json.execution.url }}┌──────────────┐ ┌──────────────┐│ Error Trigger│───→│ Gmail ││ │ │ Send Email │└──────────────┘ └──────────────┘┌──────────────┐ ┌──────────────┐ ┌──────────────┐│ Error Trigger│───→│ Code │───→│ PostgreSQL ││ │ │ (parse data) │ │ Insert Row │└──────────────┘ └──────────────┘ └──────────────┘// Code нода для подготовки данных:return [{ json: { workflow_id: $json.workflow.id, workflow_name: $json.workflow.name, error_message: $json.execution.error?.message || $json.trigger?.error?.message, failed_node: $json.execution?.lastNodeExecuted || 'Trigger', execution_id: $json.execution?.id || null, timestamp: new Date().toISOString() }}];Нода Stop And Error позволяет принудительно завершить workflow с ошибкой при определённых условиях.
┌────────────┐ ┌────────────┐ ┌────────────┐│ Webhook │───→│ IF │───→│ Обработка ││ (заказ) │ │(amount>0?) │ │ заказа │└────────────┘ └─────┬──────┘ └────────────┘ │ Нет ↓ ┌────────────────┐ │ Stop And Error │ │ "Сумма должна │ │ быть > 0" │ └────────────────┘При одинаковой высоте веток — сначала выполняется левая.
В настройках HTTP Request и некоторых других нод:
Settings → Retry On Fail: trueSettings → Max Tries: 3Settings → Wait Between Tries: 1000msПовторяет с теми же входными данными
Повторяет с обновлёнными данными (если триггер получает новые)
┌─────────────────────────────────────────────┐│ Продакшн Workflow ││ ││ Settings: ││ ├─ Error workflow: Error Handler ││ └─ Save failed executions: Yes ││ │└─────────────────────────────────────────────┘// ❌ Плохоthrow new Error("Error");
// ✅ Хорошоthrow new Error(`Заказ ${orderId}: товар ${productId} отсутствует на складе`);┌──────────────┐ ┌──────────────┐│ Error Trigger│───→│ Switch │└──────────────┘ └──────┬───────┘ │ ┌────────────────┼────────────────┐ ↓ ↓ ↓ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ Critical │ │ Warning │ │ Info │ │ (PagerD) │ │ (Slack) │ │ (Log) │ └──────────┘ └──────────┘ └──────────┘В сообщениях об ошибках указывайте:
Troubleshooting
Решение проблем — типичные ошибки
Executions
Выполнение workflows — история запусков
Логи
Logging — настройка логирования