Даже у опытных пользователей n8n время от времени что-то идет не так. Воркфлоу внезапно останавливается, нода подсвечивается красным, а в логах появляются загадочные сообщения. Это нормально. Ключ к успеху — уметь быстро диагностировать и исправлять проблему. В этом гайде мы собрали самые распространенные ошибки и понятные способы их решения.
Из этой инструкции вы узнаете:
- ✅ Что делать при ошибках авторизации `401 Unauthorized` и `403 Forbidden`.
- ✅ Как решить проблему с `CORS`, если вы работаете с вебхуками.
- ✅ Почему возникает ошибка таймаута (`Timeout`) и как ее избежать.
- ✅ Как правильно работать с файлами, чтобы не получать ошибку `binary data`.
Ошибка 1: `401 Unauthorized` / `403 Forbidden`
Это самая частая группа ошибок при работе с внешними API.
- Причина: Проблема почти всегда в учетных данных (Credentials). Либо вы ввели неверный API-ключ/токен/пароль, либо у этого ключа недостаточно прав для выполнения нужной операции (например, он может только читать данные, но не записывать). Иногда токен просто "протухает" (истекает срок его действия).
- Решение:
- Дважды проверьте правильность токена. Скопируйте его заново из личного кабинета сервиса и вставьте в n8n. Убедитесь, что в начале или конце нет лишних пробелов.
- Перейдите в настройки API в сервисе и проверьте, какие права (scopes) выданы вашему ключу.
- Если вы давно не использовали ключ, попробуйте сгенерировать его заново.
Ошибка 2: `CORS policy`
Эта ошибка возникает не в n8n, а в консоли вашего браузера, когда вы пытаетесь отправить запрос на Webhook URL из фронтенд-кода (JavaScript).
- Причина: Политика безопасности браузеров запрещает JavaScript-коду с одного домена (например, `mysite.com`) напрямую отправлять запросы на другой домен (например, `n8n.mysite.com`), если второй домен явно этого не разрешил.
- Решение: Вебхуки n8n предназначены для коммуникации "сервер-сервер". Не вызывайте их напрямую из браузера. Вместо этого, отправьте данные с вашего сайта на ваш же бэкенд, а уже бэкенд пусть вызовет вебхук n8n. Если вам все же необходимо разрешить кросс-доменные запросы, вам нужно настроить переменные окружения в n8n, например:
N8N_CORS_ALLOWED_ORIGINS=*.
Ошибка 3: `Timeout` / Воркфлоу выполняется слишком долго
Вы запускаете воркфлоу, и он "висит" на одной из нод, а через некоторое время падает с ошибкой таймаута.
- Причина: Чаще всего это происходит на ноде `HTTP Request`. Это значит, что n8n отправил запрос к внешнему сервису, но не получил от него ответ за отведенное время (по умолчанию 60 секунд). Либо сам воркфлоу обрабатывает слишком много данных в цикле.
- Решение:
- В настройках ноды `HTTP Request` увеличьте значение поля "Timeout".
- Проверьте, работает ли внешний сервис. Возможно, его API временно недоступно.
- Если вы обрабатываете тысячи элементов в цикле, разбейте их на части (батчи). Например, сначала получайте 100 элементов, обрабатывайте, затем следующие 100, и так далее.
Ошибка 4: `Binary data is not available`
Вы пытаетесь отправить файл, полученный в одной ноде (например, `HTTP Request`), в другую (например, `Telegram`), но получаете ошибку, что файл не найден.
- Причина: В целях экономии оперативной памяти n8n по умолчанию не хранит бинарные данные (файлы) в JSON-объекте, который передается между нодами. Он хранит только мета-информацию.
- Решение: В настройках самого воркфлоу (иконка шестеренки) измените параметр "Save Binary Data" на "Using file system". После этого n8n будет сохранять файлы во временную папку и делать их доступными для всех последующих нод в рамках одного запуска.
Столкнулись с нестандартной ошибкой?
Иногда проблемы требуют глубокого анализа логов и специфических знаний. Если вы не можете решить проблему самостоятельно, мы поможем провести диагностику и наладить ваши воркфлоу. Оставьте заявку для консультации.
Частые вопросы о решении проблем в n8n
Почему моя нода Webhook не получает данные от внешнего сервиса?
Самые частые причины: 1) Вы используете тестовый URL (начинается с /webhook-test/), который работает только при ручном запуске из интерфейса n8n. Используйте продуктивный URL (начинается с /webhook/). 2) Файрвол на вашем сервере блокирует входящие запросы. 3) Внешний сервис отправляет запрос не методом POST, а GET.
Что означает ошибка 'Credentials could not be found'?
Эта ошибка говорит о том, что в настройках ноды не выбраны учетные данные (Credentials) из выпадающего списка, либо выбранные учетные данные были удалены из n8n. Просто отредактируйте ноду и выберите правильный ключ доступа.
Почему в цикле (Loop) обрабатывается только один элемент?
Это стандартное поведение n8n: каждый элемент из входящего массива обрабатывается как отдельный 'пакет' данных, проходя через ветку цикла независимо. Если вам нужно собрать все результаты после цикла в один массив, используйте ноду 'Merge' в режиме 'Combine' -> 'Merge By Position'.
Как передать файл (бинарные данные) из одной ноды в другую?
По умолчанию n8n не передает файлы между нодами для экономии памяти. Чтобы это работало, зайдите в настройки воркфлоу (Settings) и установите параметр 'Save Binary Data' в положение 'Using file system'. После этого вы сможете ссылаться на файл из предыдущей ноды через специальное свойство в JSON, обычно `{{ $binary.data }}`.