AgentFlow

Dlaczego automatyzacje n8n przestają działać: 9 przyczyn i jak je naprawić

Workflow działał tygodniami, aż pewnego dnia przestał. Lista poniżej to przyczyny, które powtarzają się we wdrożeniach, od najczęstszej. Każda ma objaw, diagnozę i naprawę.

1. Wygasłe poświadczenia OAuth2 (Google, Microsoft, HubSpot)

Objaw: błąd 401 lub „invalid_grant" w węźle, który wcześniej działał. Przyczyna: token odświeżania wygasł (Google unieważnia go po 7 dniach, jeśli aplikacja OAuth jest w trybie „Testing") albo użytkownik zmienił hasło. Naprawa: Credentials → Reconnect; dla Google przełącz aplikację w Cloud Console na „In production".

2. Adres testowy webhooka w systemie produkcyjnym

Objaw: pierwsze zgłoszenie przeszło, kolejne dostają 404. Naprawa: wklej Production URL i aktywuj workflow. Więcej: webhook w n8n.

3. Zmiana domeny lub brak WEBHOOK_URL (self-host)

Objaw: po migracji serwera wszystkie webhooki milczą. Naprawa: ustaw WEBHOOK_URL na nową domenę, zaktualizuj adresy w systemach wysyłających.

4. Baza wykonań rośnie, instancja zwalnia

Objaw: n8n otwiera się coraz wolniej, wykonania „wiszą". Przyczyna: historia wykonań nie jest czyszczona. Naprawa: EXECUTIONS_DATA_PRUNE=true, EXECUTIONS_DATA_MAX_AGE=168 (godzin), ewentualnie EXECUTIONS_DATA_SAVE_ON_SUCCESS=none dla masowych workflow.

5. Brak pamięci przy dużych plikach lub pętlach

Objaw: kontener restartuje się, w logach „JavaScript heap out of memory". Naprawa: przetwarzaj w partiach (węzeł Loop Over Items), nie trzymaj plików w JSON, zwiększ limit kontenera i rozważ tryb kolejkowy (queue mode z Redis) dla wielu równoległych wykonań.

6. Limity API dostawcy (429 Too Many Requests)

Objaw: węzeł HTTP/Google Sheets co jakiś czas pada z 429. Naprawa: w węźle włącz Retry On Fail z odstępem, dodaj węzeł Wait między partiami, batchuj zapisy (np. jeden append z wieloma wierszami zamiast 200 pojedynczych).

7. Zmiana struktury danych po stronie źródła

Objaw: wyrażenia zwracają undefined, maile idą puste. Przyczyna: dostawca zmienił nazwę pola albo formularz dodał krok. Naprawa: wyrażenia z wartościami domyślnymi ({{ $json.body.email ?? 'brak' }}) i węzeł IF, który zatrzymuje workflow, gdy brakuje kluczowego pola.

8. Cron działa o złej porze

Objaw: raport „o 8:00" przychodzi o 10:00 albo 6:00. Naprawa: GENERIC_TIMEZONE=Europe/Warsaw i strefa w ustawieniach workflow; pamiętaj o zmianie czasu.

9. Aktualizacja n8n zmieniła zachowanie węzła

Objaw: po docker compose pull workflow pada w węźle, którego nikt nie ruszał. Naprawa: przypinaj wersję obrazu (n8nio/n8n:2.42.7), czytaj release notes przed dużą aktualizacją, testuj na kopii.

Jak dowiadywać się o awarii przed klientem

  1. Utwórz workflow z węzłem Error Trigger, który wysyła e-mail lub Slack z nazwą workflow i treścią błędu.
  2. W każdym workflow produkcyjnym: Settings → Error workflow → wybierz ten workflow.
  3. Dla krytycznych przepływów dodaj „heartbeat": cron co godzinę wysyła ping do zewnętrznego monitoringu; brak pingu = alarm.

Instalacja z poprawnymi zmiennymi od początku oszczędza większość z tej listy: n8n w Dockerze krok po kroku.

Najczęstsze pytania

Gdzie szukać logów błędów n8n?

W zakładce Executions każdego workflow (wejście i wyjście każdego węzła) oraz w logach kontenera: docker compose logs -f n8n.

Czy n8n ponawia nieudane wykonania samo?

Nie domyślnie. Włącz Retry On Fail w ustawieniach węzła albo ponów ręcznie z zakładki Executions.

Workflow działa po Test, a nie działa po Active — dlaczego?

Najczęściej adres testowy webhooka, wygasłe poświadczenia używane tylko w trybie produkcyjnym albo wyłączony Error workflow, który ukrywa błąd.

Źródła