Retry on Fail и Continue on Fail

В настройках почти каждого узла в n8n есть две опции, связанные с обработкой ошибок: Retry on Fail (повторить при ошибке) и Continue on Fail (продолжить при ошибке). Это самый локальный уровень обработки — на уровне одного узла.

Примечание. Точные названия опций и их расположение в настройках узла могут меняться. Обычно они находятся в общих настройках узла (Settings) рядом с таймаутами и нотификациями. Принципы — ниже.

Retry on Fail: повторить, если не получилось

Если узел упал из-за временной ошибки — например, сервер ответил 503 Service Unavailable — есть смысл повторить запрос через секунду. Возможно, во второй раз получится.

В настройках узла можно включить повторы и задать:

  • Количество попыток — сколько раз повторить, если не получилось.
  • Задержку между попытками — пауза в миллисекундах перед следующей попыткой.

После исчерпания попыток узел всё равно «упадёт», и сценарий пойдёт по сценарию обработки ошибок (или просто прервётся).

Когда стоит включать:

  • Запросы к внешним API, которые иногда «моргают».
  • Операции с базой данных, которая может быть временно перегружена.
  • Любые сетевые операции с потенциальными таймаутами.

Когда не стоит:

  • Когда повтор может привести к дублированию (например, повторное создание заказа). В таких случаях нужна идемпотентность на стороне получателя — иначе повтор сделает второй заказ.
  • Когда ошибка явно постоянная (404, 401, 400) — повторяй не повторяй, ответ не изменится. К сожалению, n8n не всегда умеет различать «временную» и «постоянную» ошибку, поэтому повторы случаются и там, где не помогут.

Continue on Fail: продолжить, как ни в чём не бывало

Если вы включаете Continue on Fail, при ошибке узла:

  • сценарий не падает;
  • ошибка не пробрасывается дальше;
  • вместо нормальных данных на выход узла попадает информация об ошибке (отдельный объект, в котором описано, что произошло).

Это удобно, когда:

  • ошибка одного item не должна останавливать обработку остальных. Например, вы рассылаете 1000 писем — и одно не доходит. Остальные 999 должны быть отправлены.
  • вы хотите явно проверить, что вернул узел: ошибку или результат, и повести разные ветки сценария.

После такого узла обычно ставят IF, который проверяет, есть ли в данных признак ошибки, и направляет «успехи» в одну ветку, «неудачи» — в другую.

Сочетание

Часто Retry on Fail и Continue on Fail включают вместе:

  • сначала пытаемся повторить (3-5 попыток с растущей задержкой);
  • если не помогло — не падаем, а отправляем item в ветку «неудача» и идём дальше.

Это базовая защита от шума и сбоев, которая не требует отдельного сценария обработки ошибок.

Что выбрать

Простой рекомендуемый подход:

  • Внешние сетевые вызовы: включайте Retry (2-3 попытки, задержка 1-3 секунды).
  • Операции, где важен каждый item: включайте Continue on Fail и явно обрабатывайте сбои отдельной веткой.
  • Критичный сценарий целиком: дополнительно настройте Error Workflow (об этом — следующий урок).