# Debug node improvements

**URL:** <https://discourse.nodered.org/t/debug-node-improvements/99798>\
**Category:** Feature Requests\
**Created:** [28 November 2025 16:52 UTC](https://discourse.nodered.org/t/debug-node-improvements/99798 "2025-11-28T16:52:12Z")\
**Posts on this page:** 19\
**Page:** 1

<div class="post-metadata">

**Author:** ![duaw](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/duaw/32/20970_2.png) [@duaw](https://discourse.nodered.org/u/duaw)\
**Post date:** [28 November 2025 16:52 UTC](https://discourse.nodered.org/t/debug-node-improvements/99798/1 "2025-11-28T16:52:12Z")

</div>

Dear all!  
I copiously insert debug nodes into my flows (as well as inject nodes) in order to test my flows in a fine grained, controllable manner.  
When running, they provide valuable information right in the flow view, even when the debug output is disabled or the debug window is ... elsewhere.  
I often want to count the incoming messages, I often want to see the last time, and, of course, I often want to see real stuff, that is some msg related stuff as node status. Therefore I often have THREE debug nodes. Too many.  
I imagine a debug node capable of providing more than one type of information. Optionally, that is.  
Perhaps time above left adjusted, a counter adjusted to the right, node status as is right below.  
What do you think?  
Cheers, Uwe

---

<div class="post-metadata">

**Author:** ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)\
**Post date:** [28 November 2025 19:34 UTC](https://discourse.nodered.org/t/debug-node-improvements/99798/2 "2025-11-28T19:34:19Z")

</div>

The time, topic and source node are already shown:

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/0/7/0788087906f86a358c19b28f9866869896ade1c5.png)

A count can be added to the debug node itself:

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/b/5/b538380f3accfc2d517e2bf44548dc1de1cf85af.png)

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/a/4/a4db4d9062be0f3ca496fac002934df277e83be8.png)

So unless I've missed something, I think everything you want is already there?

If you want more things in the output, simply add a node to add additional properties to the msg going to debug.

---

<div class="post-metadata">

**Author:** ![duaw](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/duaw/32/20970_2.png) [@duaw](https://discourse.nodered.org/u/duaw)\
**Post date:** [29 November 2025 08:25 UTC](https://discourse.nodered.org/t/debug-node-improvements/99798/3 "2025-11-29T08:25:39Z")

</div>

I didn't make myself clear enough:

I'd like to **ADD ONE** better Debug Node only to my **FLOW** to see **all the information** I want in right in the flow **at a single glance**.

I know that I can see all the information I want wo see using the debug window, using more than one Debug Node.

---

<div class="post-metadata">

**Author:** ![dynamicdave](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dynamicdave/32/96_2.png) [@dynamicdave](https://discourse.nodered.org/u/dynamicdave)\
**Post date:** [29 November 2025 10:06 UTC](https://discourse.nodered.org/t/debug-node-improvements/99798/4 "2025-11-29T10:06:05Z")

</div>

Don't forget, in a 'function' node you can use node.status to show important things.

`node.status({text:"State register = " + fsm_state});`

`node.status({fill:"green",shape:"dot",text:"Manual mode is ON"});`

 ![sat_node_status](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/9/2/9235e3f1a9ac40a9958329570841928363992815.png)

---

<div class="post-metadata">

**Author:** ![duaw](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/duaw/32/20970_2.png) [@duaw](https://discourse.nodered.org/u/duaw)\
**Post date:** [29 November 2025 10:44 UTC](https://discourse.nodered.org/t/debug-node-improvements/99798/5 "2025-11-29T10:44:18Z")

</div>

Yeah, of course I could somehow use a function node "creative" way to provide count, time, and text, even a colourful indication of state.

Perhaps I circumvent current limits of the Debug Node with this. There is one line below and I dont know how long it can be ... For me, this has a touch of "not intended" use of a function node.

**However** : The question is NOT "Can I achieve what I want somehow with the current state of NR."

My answer would be "Yes, perhaps, somehow, quite, oh, no, if I think about it thoroughly … not really!!!".

My question is **"Would it be beneficial to add these capabilities to a new version of the Debug node?"** to evolve, improve NR to make it ready for the future.

Do you think it would be useful to have a beefed up Debug node, optionally providing more output possibilities **simultaneously,** such as `count`, `time`, and `msg.payload` stuff?

---

<div class="post-metadata">

**Author:** ![jbudd](https://avatars.discourse-cdn.com/v4/letter/j/5f8ce5/32.png) [@jbudd](https://discourse.nodered.org/u/jbudd)\
**Post date:** [29 November 2025 11:59 UTC](https://discourse.nodered.org/t/debug-node-improvements/99798/6 "2025-11-29T11:59:56Z")

</div>

There have been a few discussions about potential improvements to flow debugging recently, there will hopefully be several changes before Node-red v5.  
I'm not aware of anywhere they are gathered together for discussion, sadly.

Regarding your plan to have three bits of info clustered around the debug node on the editor desktop, I think it's unlikely to be approved by the authorities.

I could imagine a little "More info" tab similar to what is displayed on a node which has something on it's Description tab, or a Comment node with text in the main config panel.  
At the expense of having to click the icon this could display much more debug info (in a popup?) than there is space for clustered around the node.

ps At the risk of getting a reply ALL IN CAPITALS, I'll just point out that you can go some way towards your goal with a jsonata expression to set the debug node status, albeit restricted to 32 characters (configurable in settings.js).  
For example:

```auto
$moment($now()).format("HH:mm:ss") & " " & payload

```

gives me  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/8/b/8be66cf061ada9a137313b7dde31081a2e06bc9d.png)

Jsonata can't easily include a message count though.  
In Node-red Jsonata can read a context variable but it can't increment it.

---

<div class="post-metadata">

**Author:** ![duaw](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/duaw/32/20970_2.png) [@duaw](https://discourse.nodered.org/u/duaw)\
**Post date:** [29 November 2025 12:44 UTC](https://discourse.nodered.org/t/debug-node-improvements/99798/7 "2025-11-29T12:44:40Z")

</div>

> [@jbudd](#):
>
> the authorities

I love this expression. 😃

I will wait and see what the bright future will bring us wrt. usability tradeoffs (clicks vs. clutter) & testability.

---

<div class="post-metadata">

**Author:** ![hoolahoous](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/hoolahoous/32/16612_2.png) [@hoolahoous](https://discourse.nodered.org/u/hoolahoous)\
**Post date:** [6 December 2025 00:11 UTC](https://discourse.nodered.org/t/debug-node-improvements/99798/8 "2025-12-06T00:11:27Z")

</div>

i would be happy if debug node can print all properties by default (instead of just payload). I have to do multiple clicks to see properties.

---

<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:** [6 December 2025 09:20 UTC](https://discourse.nodered.org/t/debug-node-improvements/99798/9 "2025-12-06T09:20:37Z")

</div>

You can set the node to Output Complete Message, or do you mean that you want it fully expanded so you don't need to click the objects to expand them?

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [6 December 2025 12:01 UTC](https://discourse.nodered.org/t/debug-node-improvements/99798/10 "2025-12-06T12:01:13Z")

</div>

"I think" they mean that the default when you drag on a new node should be complete msg rather than msg.payload...

---

<div class="post-metadata">

**Author:** ![hoolahoous](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/hoolahoous/32/16612_2.png) [@hoolahoous](https://discourse.nodered.org/u/hoolahoous)\
**Post date:** [6 December 2025 14:43 UTC](https://discourse.nodered.org/t/debug-node-improvements/99798/11 "2025-12-06T14:43:49Z")

</div>

yes. all properties (complete message object) by default, instead of just payload.

---

<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:** [6 December 2025 15:24 UTC](https://discourse.nodered.org/t/debug-node-improvements/99798/12 "2025-12-06T15:24:17Z")

</div>

The ideal might be an option that one could set in the debug node itself. 'Default debug nodes to this output' or some appropriate wording so that one could easily set the default on the fly. Sometimes one wants one default, and other times something else.

---

<div class="post-metadata">

**Author:** ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)\
**Post date:** [6 December 2025 15:28 UTC](https://discourse.nodered.org/t/debug-node-improvements/99798/13 "2025-12-06T15:28:56Z")

</div>

> [@Colin](#):
>
> an option that one could set in the debug node itself

Or in settings.js

---

<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:** [6 December 2025 16:01 UTC](https://discourse.nodered.org/t/debug-node-improvements/99798/14 "2025-12-06T16:01:14Z")

</div>

> [@TotallyInformation](#):
>
> Or in settings.js

I want to be able to switch it on the fly. So that when I create or edit a debug node I can set it to Output Complete Message and click the default checkbox, in fact it is a button not a checkbox. Then the next time I create a debug node it will default to that mode. If I edit another one and set it to msg.payload then I can click the button again and further new nodes will default to that.

---

<div class="post-metadata">

**Author:** ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)\
**Post date:** [6 December 2025 16:08 UTC](https://discourse.nodered.org/t/debug-node-improvements/99798/15 "2025-12-06T16:08:15Z")

</div>

> [@Colin](#):
>
> I want to be able to switch it on the fly

Ah, I see. Not something that I would want. However, there are a number of nodes that I _always_ end up tweaking and wish that there was a standard feature for doing so. Debug is one - output all and don't show name. Inject is another - output a blank message & don't show name. There are probably others. But these are the most common where I wish I could simply change the defaults for all **new** instances.

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [6 December 2025 17:28 UTC](https://discourse.nodered.org/t/debug-node-improvements/99798/16 "2025-12-06T17:28:37Z")

</div>

settings set on a node are - per node... so if you add one and ticked a box to set a "default" - it would only apply to that instance... so next one you added would also need setting... (ie where we are today) - work around is of course to cut paste the one you have set...

So would need to be either in settings.js - or in editor settings.

---

<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:** [6 December 2025 17:33 UTC](https://discourse.nodered.org/t/debug-node-improvements/99798/17 "2025-12-06T17:33:43Z")

</div>

> [@dceejay](#):
>
> settings set on a node are - per node

Yes, it wouldn't be a setting on a node, it would be an action performed when you click the button to say what the default would be in future, so a global, variable, setting. I don't know whether there is anything like that at the moment. Possibly not.

---

<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:** [6 December 2025 17:53 UTC](https://discourse.nodered.org/t/debug-node-improvements/99798/18 "2025-12-06T17:53:49Z")

</div>

> [@dceejay](#):
>
> so if you add one and ticked a box to set a "default"

Another use case for [alias nodes](https://discourse.nodered.org/t/alias-nodes-redefine-default-settings-as-new-nodes/98137). Perhaps something that could be thought through for official support in NR since they can also be used to create debug nodes that log the entire msg by default.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [4 February 2026 17:54 UTC](https://discourse.nodered.org/t/debug-node-improvements/99798/19 "2026-02-04T17:54:18Z")

</div>

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