Error handling workflow has executed on its own

Describe the problem/error/question

I have an Error handling workflow connected to an active main workflow.
The workflow is as simple as “on Error Trigger send an email populated with data from Error Trigger output (workflow.*, execution.*)”. Nothing fancy, quoting it with some data redacted below.

Today (08:20 CET) I received a notification apparently generated by the Error handling workflow where workflow data (id, name) indicated that my main workflow triggered an error. The execution data points were all undefined.

I checked the main workflow executions. Last time it executed was more than 24 hours ago (March 2, 00:20 CET), 32 hours before the Error handling workflow execution.

The Error handling workflow executions log confirms it was successfully executed at 8:20 CET. The trigger output doesn’t contain execution property but has trigger property defined.

I wonder what made the Error handling workflow to get executed?

One partial explanation comes from Error Trigger node documentation | n8n Docs that says, in particular:

  • If a workflow contains the Error Trigger node, by default, the workflow uses itself as the error workflow.

    All information is always present, except: … <execution.id|url|retryOf> … (text reduced for readability)

What is the error message (if any)?

Below is the Error Trigger output from the execution. It refers the correct main workflow, which however wasn’t executed at the time being.

[
  {
    "trigger": {
      "error": {
        "message": "Service unavailable - try again later or consider setting this node to retry automatically (in the node settings)",
        "timestamp": 1740986456812,
        "name": "NodeApiError",
        "description": "The service is currently unavailable.",
        "context": {
        },
        "cause": {
          "message": "503 - {\"error\":{\"code\":503,\"message\":\"The service is currently unavailable.\",\"status\":\"UNAVAILABLE\"}}",
          "name": "AxiosError",
          "stack": "AxiosError: Request failed with status code 503\n    at settle (/usr/local/lib/node_modules/n8n/node_modules/axios/lib/core/settle.js:19:12)\n    at Unzip.handleStreamEnd (/usr/local/lib/node_modules/n8n/node_modules/axios/lib/adapters/http.js:599:11)\n    at Unzip.emit (node:events:530:35)\n    at endReadableNT (node:internal/streams/readable:1698:12)\n    at processTicksAndRejections (node:internal/process/task_queues:82:21)\n    at Axios.request (/usr/local/lib/node_modules/n8n/node_modules/axios/lib/core/Axios.js:45:41)\n    at processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at invokeAxios (/usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/execution-engine/node-execution-context/utils/request-helper-functions.js:173:16)\n    at proxyRequestToAxios (/usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/execution-engine/node-execution-context/utils/request-helper-functions.js:513:26)\n    at Object.request (/usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/execution-engine/node-execution-context/utils/request-helper-functions.js:1145:50)\n    at PollContext.requestOAuth2 (/usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/execution-engine/node-execution-context/utils/request-helper-functions.js:792:12)\n    at PollContext.requestOAuth2 (/usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/execution-engine/node-execution-context/utils/request-helper-functions.js:1153:20)\n    at PollContext.apiRequest (/usr/local/lib/node_modules/n8n/node_modules/n8n-nodes-base/dist/nodes/Google/Sheet/v2/transport/index.js:38:20)\n    at GoogleSheet.spreadsheetGetSheet (/usr/local/lib/node_modules/n8n/node_modules/n8n-nodes-base/dist/nodes/Google/Sheet/v2/helpers/GoogleSheet.js:54:27)\n    at PollContext.poll (/usr/local/lib/node_modules/n8n/node_modules/n8n-nodes-base/dist/nodes/Google/Sheet/GoogleSheetsTrigger.node.js:379:51)\n    at TriggersAndPollers.runPoll (/usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/execution-engine/triggers-and-pollers.js:59:16)\n    at executeTrigger (/usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/execution-engine/active-workflows.js:78:38)",
          "code": "ERR_BAD_RESPONSE",
          "status": 503
        }
      },
      "mode": "trigger"
    },
    "workflow": {
      "id": "aCyARvG0gAByrObg",
      "name": "CV Evaluation v2"
    }
  }
]

Please share your workflow

Share the output returned by the last node

Expected behavior:

  • Error handling workflow is executed upon error on the main workflow.
  • Trigger output contains workflow and execution objects.

Actual behavior:

  • Error handling workflow has been executed on its own.
  • Trigger output doesn’t contain an execution object.
  • Trigger output contains workflow and trigger objects.

Information on your n8n setup

  • n8n version: 1.80.5
  • Database (default: SQLite): n8n cloud
  • n8n EXECUTIONS_PROCESS setting (default: own, main): n8n cloud
  • Running n8n via (Docker, npm, n8n cloud, desktop app): cloud
  • Operating system: Windows 11

Upd 2025-03-12:

I created a workflow template to handle both execution-time and trigger errors:

Now it is my default error handler.


What happened and learnings (2025-03-03):

I should have read the docs (RTFM (till very end), old as the technical docs are).

Error Trigger node documentation | n8n Docs says:

If the error is caused by the trigger node of the main workflow, rather than a later stage, the data sent to the error workflow is different. There’s less information in execution{} and more in trigger{}

My main workflow has a trigger node Google Sheets - On row updated with a Poll timer defined (every 10 minutes).

Probably, one of the polls ended with 503 error.

This explains why the main workflow was referred in Error Trigger output and no execution data has been defined.

The trigger object from Error Trigger is related to a trigger node from the main workflow, not to the Error Trigger itself.

Lesson learned - RTFM. Keeping this topic for others novices like myself.

Below is an updated Error handling workflow that also notifies of errors caused by triggers.

2 Likes

hello @Olek

Yeah… google quite often returns 5xx codes for their services :frowning:

If you already solved the issue, you can mark your post as a solution. So other would see it also

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.