Something I see constantly in production n8n workflows that trips people up.
When you enable Continue On Fail on a node, n8n will mark the execution as success even if that node failed with a 500, a 401, or an empty response. The error gets passed downstream as error output data, the workflow keeps running, and the top-level execution status shows green.
This means: your HubSpot node failed, your CRM row was never created, your client never got the email — and n8n’s execution log shows success.
Three places this causes real pain:
-
HTTP Request nodes with Continue On Fail — a 500 from an API looks identical to a 200 in the execution view
-
Code nodes that throw errors — silently passed downstream
-
Any node in a multi-step flow where you “just want it to keep going”
The fix is to add an explicit IF node after any critical node that uses Continue On Fail — check for the presence of $json.error in the output and route it to an alert branch.
Has anyone else hit this in production? Curious how people are handling it across larger workflows.