# Catch and Complete nodes do not show config error if not connected to any node

**URL:** <https://discourse.nodered.org/t/catch-and-complete-nodes-do-not-show-config-error-if-not-connected-to-any-node/101472>\
**Category:** General\
**Created:** [14 July 2026 08:34 UTC](https://discourse.nodered.org/t/catch-and-complete-nodes-do-not-show-config-error-if-not-connected-to-any-node/101472 "2026-07-14T08:34:56Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [14 July 2026 08:34 UTC](https://discourse.nodered.org/t/catch-and-complete-nodes-do-not-show-config-error-if-not-connected-to-any-node/101472/1 "2026-07-14T08:34:56Z")

</div>

I have just noticed that Catch and Complete nodes do not show a config error if they are not connected to any nodes. This happened because I deleted the node that was being monitored by a Catch node and then recreated it, this meant that errors were no longer caught but there was no indication that the Catch node was no longer connected. It took me a little time before I realised what was going on, particularly as I had named the catch node in a way that indicated which node it was monitoring. A classic case of the comments in code not matching what the code is actually doing.

Is this worthy of a feature request?

---

<div class="post-metadata">

**Author:** ![GogoVega](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/gogovega/32/71313_2.png) [@GogoVega](https://discourse.nodered.org/u/GogoVega)\
**Post date:** [14 July 2026 13:30 UTC](https://discourse.nodered.org/t/catch-and-complete-nodes-do-not-show-config-error-if-not-connected-to-any-node/101472/2 "2026-07-14T13:30:32Z")

</div>

FR, I hope... 🙏

> <https://github.com/node-red/node-red/pull/5329>
>
> \## Types of changes
> 
> \- \[\] Bugfix (non-breaking change which fixes an issue)
> …- \[x\] New feature (non-breaking change which adds functionality)
> 
> \## Proposed changes
> 
> Allow \`catch\` node to catch any error other than message processing and to catch errors from config nodes.
> 
> \### Concept
> 
> Each \`catch\` node can select one or more config nodes from the same scope or from the global scope.
> 
> \#### Editor:
> 
> \- \`all\`
> - show a new checkbox to enable \`anyError\` (allow any error other than message processing) \[^1\]
> - show a new checkbox to enable \`includeConfig\` (allow to catch errors from config nodes from the same scope and from the global scope)
> \- \`group\`
> - keep the actual behavior
> \- \`target\`
> - show a new checkbox to enable \`anyError\` (allow any error other than message processing) \[^1\]
> - show a new checkbox to enable \`includeConfig\` (allow to catch errors from config nodes from the same scope or from the global scope)
> - the \`treeList\` will contain two tabs (the current flow and the global flow)
> - config nodes will be included there with an \`fa-cog\` icon
> 
> \#### Runtime:
> 
> \- \`flow.handleError\` will be called if the message is:
> - an \`object\`
> - \`undefined\`
> \- catch nodes will be triggered if:
> - \`msg\` exists (actual behavior)
> - \`msg\` does not exist and \`anyError\` is enabled
> \- propagate Error events from global config nodes to any nodes using this config node
> - will not be called if the scope contains the config node or the scope is \`all\`
> \### Limitations
> 
> \- the \*select nodes\* functionality does not exist for config nodes
> 
> \### Related Issue(s)
> 
> \- https://discourse.nodered.org/t/extend-the-catch-node-to-errors-not-triggered-by-message-processing/99336
> 
> \### Todo list
> 
> \- \[x\] Finds out how to trigger \`catch\` nodes when errors comes from any global config node (\`Flow\` instance does not have access to \`activeFlows\`
> \- \[\] Update node docs
> \- \[\] Adapt/update core nodes
> \- \[\] Add unit tests
> 
> \## Checklist
> 
> \- \[x\] I have read the \[contribution guidelines\](https://github.com/node-red/node-red/blob/master/CONTRIBUTING.md)
> \- \[x\] For non-bugfix PRs, I have discussed this change on the forum/slack team.
> \- \[x\] I have run \`npm run test\` to verify the unit tests pass
> \- \[\] I have added suitable unit tests to cover the new/changed functionality
> 
> \[^1\]: Of course if a config node is selected but the \`anyError\` option is disabled, the error will not be caught

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [14 July 2026 14:43 UTC](https://discourse.nodered.org/t/catch-and-complete-nodes-do-not-show-config-error-if-not-connected-to-any-node/101472/3 "2026-07-14T14:43:45Z")

</div>

I don't immediately see how that relates to my issue.

---

<div class="post-metadata">

**Author:** ![GogoVega](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/gogovega/32/71313_2.png) [@GogoVega](https://discourse.nodered.org/u/GogoVega)\
**Post date:** [15 July 2026 07:26 UTC](https://discourse.nodered.org/t/catch-and-complete-nodes-do-not-show-config-error-if-not-connected-to-any-node/101472/4 "2026-07-15T07:26:18Z")

</div>

Logically, if no node is associated with the config node, the latter should itself trigger the error. Currently, errors emitted by a config node are not catchable by the catch node. The PR above is, of course, one part of the solution.

---

<div class="post-metadata">

**Author:** ![gregorius](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/gregorius/32/73816_2.png) [@gregorius](https://discourse.nodered.org/u/gregorius)\
**Post date:** [15 July 2026 07:38 UTC](https://discourse.nodered.org/t/catch-and-complete-nodes-do-not-show-config-error-if-not-connected-to-any-node/101472/5 "2026-07-15T07:38:18Z")

</div>

For me there issue here is that a config node is generating an exception. Should config nodes have that much logic that they could possible generate exceptions? I thought config nodes only store configuration which is then used by the actual workspace nodes to create connections or set values - which then might cause exceptions.

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [15 July 2026 08:05 UTC](https://discourse.nodered.org/t/catch-and-complete-nodes-do-not-show-config-error-if-not-connected-to-any-node/101472/6 "2026-07-15T08:05:47Z")

</div>

> [@GogoVega](#):
>
> Logically, if no node is associated with the config node, the latter should itself trigger the error.

It isn't a run-time error, it is a config error, so should show the red triangle and warn when deploying.

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [16 July 2026 16:14 UTC](https://discourse.nodered.org/t/catch-and-complete-nodes-do-not-show-config-error-if-not-connected-to-any-node/101472/7 "2026-07-16T16:14:19Z")

</div>

> <https://github.com/node-red/node-red/issues/5875>
>
> \### Current Behavior
> 
> Add a Catch, Status or Complete node to the flow and attac…h it to 0 nodes.
> The node does not show the config error warning.
> If the node is given a name there is no way of knowing that it is not connected without opening it.
> 
> This can easily happen if the node is initially attached and the attached node is deleted, and possibly even recreated. This can lead to confusion as it appears that the node is not generate errors (or whatever).
> 
> \### Expected Behavior
> 
> The node should show the warning triangle.
> 
> \### Steps To Reproduce
> 
> \_No response\_
> 
> \### Example flow
> 
> 
> 
> 
> \### Environment
> 
> \- Node-RED version: 5.0.1
> \- Node.js version: 24
> \- npm version:
> \- Platform/OS: Ubuntu
> \- Browser: Brave

---

<div class="post-metadata">

**Author:** ![GogoVega](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/gogovega/32/71313_2.png) [@GogoVega](https://discourse.nodered.org/u/GogoVega)\
**Post date:** [12 September 2026 09:12 UTC](https://discourse.nodered.org/t/catch-and-complete-nodes-do-not-show-config-error-if-not-connected-to-any-node/101472/8 "2026-09-12T09:12:34Z")

</div>

> <https://github.com/node-red/node-red/pull/5946>
>
> \## Types of changes
> 
> \- \[x\] Bugfix (non-breaking change which fixes an issue)
> …- \[\] New feature (non-breaking change which adds functionality)
> 
> \## Proposed changes
> 
> Closes #5875.
> 
> When a node is deleted, a loop iterates over every Catch, Complete, and Status node (active flow) to remove the deleted node from the scope. This keeps the scope up to date, thereby sparing the user from having to search for incorrect scopes.
> 
> Once all scopes are updated, each modified node is validated and saved to the history.
> 
> In a future PR, the scope of Catch and Status nodes will include node validation that excludes an empty selection list.
> 
> \## Checklist
> 
> \- \[x\] I have read the \[contribution guidelines\](https://github.com/node-red/node-red/blob/main/CONTRIBUTING.md)
> \- \[\] For non-bugfix PRs, I have discussed this change on the forum/slack team.
> \- \[x\] I have run \`npm run test\` to verify the unit tests pass
> \- \[\] I have added suitable unit tests to cover the new/changed functionality
