Two things I found the hard way running n8n self-hosted, both of which produce no error and no notification.
1. An error workflow that is inactive is skipped in silence. If the workflow you set under Settings → Error workflow is not active, n8n writes one line to the server log and moves on. Every failure after that goes unreported. You believe you have alerting. You have none. I only found this by toggling mine off to see what would happen.
2. There is no global error workflow. It is set per workflow, in each workflow’s own settings. So every workflow you add later is uncovered by default, and nothing counts them for you. In a 30-workflow instance it is a matter of when, not if.
Add the two obvious ones, an execution that hangs and stays “running” for hours without ever erroring, and the instance itself being down, and that is four failure modes the Error Trigger cannot reach.
I built a watchdog for it: runheartbeat.com. I made it, so read this as show-and-tell, not a neutral recommendation.
@jorritba posted about Floxer here two days ago, aimed at a similar problem, so let me be clear about where mine is different rather than pretend I did not see it. Floxer goes through n8n’s OpenTelemetry support and learns each workflow’s normal behaviour. Mine takes the low-tech route: you import two workflows and change nothing else. No environment variables, no restart, no config access, which matters if the n8n you need to watch is not one you are allowed to reconfigure. One workflow is an Error Trigger that forwards the failing node and a link to the execution. The other runs every 5 minutes, calls your own instance’s public API about itself, and pushes a heartbeat out. Silence is the alarm.
Everything is outbound, so nothing reaches into your instance. It works behind a firewall or on a tailnet. The API key needs read scopes only: workflow:read, workflow:list, execution:read, execution:list.
Alerts go to Telegram or Slack. Repeats of the same failure are fingerprinted and grouped, so a workflow failing forty times in an hour is one alert, not forty. And it does the counting for point 2 above: it lists your active workflows with no error workflow attached, by name.
Free right now while I find out whether it is useful to anyone besides me.
What I would actually like to know:
- Have you been bitten by a silent failure that is not on this list?
-
- Would you rather run the collector yourself than point it at a hosted one?