Решение проблем
Диагностика и исправление распространённых ошибок в n8n
Проблемы запуска
Заголовок раздела «Проблемы запуска»n8n не запускается
Заголовок раздела «n8n не запускается»-
Проверьте логи:
Окно терминала # Dockerdocker logs n8n# npmn8n start --tunnel 2>&1 | tee n8n.log -
Проверьте порт:
Окно терминала # Занят ли порт 5678?lsof -i :5678# илиnetstat -tlnp | grep 5678 -
Проверьте права доступа:
Окно терминала ls -la ~/.n8n/# Должны быть права на чтение/запись -
Проверьте переменные окружения:
Окно терминала env | grep N8N
Частые причины:
- Порт 5678 уже занят
- Нет прав на директорию
~/.n8n/ - Несовместимая версия Node.js (нужна 18.17+)
- Повреждённая база данных
Ошибка “Database is locked” (SQLite)
Заголовок раздела «Ошибка “Database is locked” (SQLite)»# Остановите все процессы n8npkill -f n8n
# Удалите lock файлrm ~/.n8n/database.sqlite-journal
# Перезапуститеn8n startОшибка “ENOSPC: no space left on device”
Заголовок раздела «Ошибка “ENOSPC: no space left on device”»# Проверьте место на дискеdf -h
# Очистите старые executionsn8n execute --cleanup
# Или через APIcurl -X POST http://localhost:5678/rest/executions/delete \ -H "X-N8N-API-KEY: your-api-key" \ -d '{"deleteBefore": "2024-01-01"}'Проблемы с Workflows
Заголовок раздела «Проблемы с Workflows»Workflow не запускается по расписанию
Заголовок раздела «Workflow не запускается по расписанию»-
Проверьте активацию:
- Workflow должен быть активирован (зелёный переключатель)
- В заголовке должно быть “Active”
-
Проверьте timezone:
Окно терминала # В docker-compose.yml:environment:- GENERIC_TIMEZONE=Europe/Moscow- TZ=Europe/Moscow -
Проверьте cron выражение:
0 9 * * *— каждый день в 9:00*/5 * * * *— каждые 5 минут- Используйте crontab.guru для проверки
-
Проверьте логи:
Окно терминала docker logs n8n 2>&1 | grep -i schedule
Webhook не работает
Заголовок раздела «Webhook не работает»Симптомы: 404 или timeout при обращении к webhook
# Правильный формат URL:# Production: https://n8n.example.com/webhook/abc123# Test: https://n8n.example.com/webhook-test/abc123
# Проверьте доступность:curl -v https://n8n.example.com/webhook/abc123# docker-compose.ymlenvironment: - WEBHOOK_URL=https://n8n.example.com/ - N8N_HOST=n8n.example.com - N8N_PROTOCOL=httpsЧек-лист:
- Workflow активирован
- URL содержит правильный webhook ID
- Firewall разрешает входящие соединения
- Настроен reverse proxy (nginx/Caddy)
- SSL сертификат валиден
Ошибка “The execution was stopped at node X”
Заголовок раздела «Ошибка “The execution was stopped at node X”»Причины:
- Timeout — нода работала слишком долго
- Ошибка в данных — неправильный формат input
- Лимит памяти — слишком большой payload
Решения:
// Увеличьте timeout (в переменных окружения)EXECUTIONS_TIMEOUT=3600 // 1 часEXECUTIONS_TIMEOUT_MAX=7200 // 2 часа
// Или в ноде HTTP Request:// Settings → Timeout → увеличьте значениеПроблемы с AI и LangChain
Заголовок раздела «Проблемы с AI и LangChain»Ошибка “Rate limit exceeded” (OpenAI/Anthropic)
Заголовок раздела «Ошибка “Rate limit exceeded” (OpenAI/Anthropic)»// Добавьте задержку между запросами:// В Code ноде перед AI:await new Promise(r => setTimeout(r, 1000)); // 1 секунда
// Или используйте Split In Batches с задержкойРекомендации:
- Увеличьте лимиты в dashboard провайдера
- Используйте кэширование ответов
- Разбивайте большие запросы на части
AI Agent не использует tools
Заголовок раздела «AI Agent не использует tools»Проверьте:
-
Tools подключены к Agent:
- Линия от Tool ноды должна идти к входу “Tool” Agent’а
-
Описание tool понятно LLM:
// Хорошо:"Search for products in the database by name or category"// Плохо:"Search" -
Input schema корректна:
{"type": "object","properties": {"query": {"type": "string","description": "Search query"}},"required": ["query"]}
Ошибка “Context length exceeded”
Заголовок раздела «Ошибка “Context length exceeded”»// Уменьшите размер входных данных:// 1. Используйте Text Splitter для длинных документов// 2. Summarization Chain для сжатия текста// 3. Ограничьте историю чата:
// В Memory ноде:// Window Memory → k = 10 // только последние 10 сообщенийMCP сервер не подключается
Заголовок раздела «MCP сервер не подключается»-
Проверьте доступность сервера:
Окно терминала # Локальный серверcurl http://localhost:3000/health# Или проверьте процессps aux | grep mcp -
Проверьте аутентификацию:
- API Key должен быть в Credentials
- Для OAuth — проверьте token expiration
-
Проверьте транспорт:
Окно терминала # stdio для локальных серверов:npx @anthropic/mcp-server-github# HTTP для удалённых:# URL должен быть доступен -
Посмотрите логи MCP сервера:
Окно терминала # Запустите с debugDEBUG=* npx @anthropic/mcp-server-github 2>&1
Проблемы с данными
Заголовок раздела «Проблемы с данными»Ошибка “Cannot read property ‘X’ of undefined”
Заголовок раздела «Ошибка “Cannot read property ‘X’ of undefined”»// Данные не существуют на предыдущей ноде// Решение 1: Проверка существованияif ($json.data?.property) { return $json.data.property;}
// Решение 2: Значение по умолчаниюconst value = $json.data?.property ?? "default";
// Решение 3: Optional chaining в выражениях{{ $json.data?.items?.[0]?.name ?? "No name" }}Данные теряются между нодами
Заголовок раздела «Данные теряются между нодами»Причины:
- Нода не передаёт данные (empty output)
- Неправильное соединение нод
- Фильтр отсеивает все данные
Диагностика:
- Кликните на каждую ноду и проверьте Input/Output
- Проверьте количество items:
{{ $items.length }}
Большой JSON вызывает ошибку
Заголовок раздела «Большой JSON вызывает ошибку»// Увеличьте лимит payload// В переменных окружения:N8N_PAYLOAD_SIZE_MAX=64 // MB
// Или обрабатывайте данные частями:// Split In Batches → Batch Size: 100Проблемы с базой данных
Заголовок раздела «Проблемы с базой данных»Не подключается к PostgreSQL
Заголовок раздела «Не подключается к PostgreSQL»# Проверьте строку подключения:DATABASE_URL=postgres://user:password@host:5432/n8n
# Проверьте доступность:psql -h host -U user -d n8n -c "SELECT 1"
# Проверьте firewall:telnet host 5432Частые ошибки:
ECONNREFUSED— PostgreSQL не запущен или неправильный hostauthentication failed— неверный парольdatabase "n8n" does not exist— создайте базу данных
Миграция с SQLite на PostgreSQL
Заголовок раздела «Миграция с SQLite на PostgreSQL»# 1. Экспортируйте workflowsn8n export:workflow --all --output=workflows.json
# 2. Экспортируйте credentialsn8n export:credentials --all --output=credentials.json
# 3. Настройте PostgreSQLexport DATABASE_TYPE=postgresdbexport DATABASE_URL=postgres://user:pass@host:5432/n8n
# 4. Запустите n8n (создаст схему)n8n start
# 5. Импортируйте данныеn8n import:workflow --input=workflows.jsonn8n import:credentials --input=credentials.jsonПроблемы производительности
Заголовок раздела «Проблемы производительности»Высокое потребление памяти
Заголовок раздела «Высокое потребление памяти»# Проверьте использование памятиdocker stats n8n
# Ограничьте память в docker-compose.yml:services: n8n: deploy: resources: limits: memory: 2GОптимизации:
- Включите Queue Mode для распределения нагрузки
- Уменьшите
EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS - Очищайте старые executions
Медленные executions
Заголовок раздела «Медленные executions»# Включите профилированиеN8N_LOG_LEVEL=debug
# Проверьте узкие места:# 1. HTTP запросы — добавьте timeout# 2. Большие данные — используйте batching# 3. Последовательные запросы — параллелизуйтеDocker проблемы
Заголовок раздела «Docker проблемы»Container перезапускается
Заголовок раздела «Container перезапускается»# Проверьте логиdocker logs n8n --tail 100
# Частые причины:# - OOM (Out of Memory)# - Ошибка подключения к БД# - Неправильные переменные окруженияVolumes не сохраняются
Заголовок раздела «Volumes не сохраняются»# docker-compose.yml — правильная настройка:volumes: - n8n_data:/home/node/.n8n
volumes: n8n_data: driver: localЛогирование и отладка
Заголовок раздела «Логирование и отладка»Включение подробных логов
Заголовок раздела «Включение подробных логов»# Переменные окружения:N8N_LOG_LEVEL=debug # debug, info, warn, errorN8N_LOG_OUTPUT=console,fileN8N_LOG_FILE_LOCATION=/logs/n8n.log
# Для Docker:docker logs -f n8n 2>&1 | tee n8n-debug.logОтладка в Code ноде
Заголовок раздела «Отладка в Code ноде»// Логированиеconsole.log('Debug:', JSON.stringify($json, null, 2));
// Проверка типовconsole.log('Type:', typeof $json.value);
// Вывод всех доступных данныхconsole.log('Items:', $items.length);console.log('Node:', $node.name);console.log('Execution:', $execution.id);Получение помощи
Заголовок раздела «Получение помощи»Если проблема не решена:
-
Соберите информацию:
- Версия n8n:
n8n --version - Логи с ошибкой
- Скриншот workflow (без credentials!)
- Шаги воспроизведения
- Версия n8n:
-
Проверьте известные issues:
-
Задайте вопрос: