Has something changed with the delay node?

Hello everyone, its been a while :sweat_smile:

This finding is prior to 3.1 (i'm sure it is), but Mrs Davies keeps bringing it up, because of the effect its having with automation.

I have noticed the delay node WILL pass a message that has msg.reset if:

  • Its set to rate limit
  • There is no other message being held.

I believe this is behaviour that started maybe 1-2 versions ago?

See below for a demo.
If this is expected (new behaviour or otherwise) then cool, but not sure if this was intended?

Sep-12-2023 07-17-03

[{"id":"847f3a065f5f8cdd","type":"tab","label":"Flow 1","disabled":false,"info":"","env":[]},{"id":"b0f341d4815fa7ea","type":"debug","z":"847f3a065f5f8cdd","name":"debug 4","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1115,"y":100,"wires":[]},{"id":"a4a9b730b905294c","type":"delay","z":"847f3a065f5f8cdd","name":"","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"hour","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":true,"allowrate":false,"outputs":1,"x":910,"y":100,"wires":[["b0f341d4815fa7ea"]]},{"id":"351578f6dd252a3f","type":"inject","z":"847f3a065f5f8cdd","name":"reset","props":[{"p":"reset","v":"true","vt":"bool"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":680,"y":220,"wires":[["a4a9b730b905294c"]]},{"id":"c944b4bae18a02ea","type":"inject","z":"847f3a065f5f8cdd","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":680,"y":100,"wires":[["a4a9b730b905294c"]]}]

I just tried this on one of my old NR instances on a PiZero in my kitchen, running V1.1.3 and can confirm that msg.reset messages are not let through at all

So seems this is new behaviour.
I'll wait for someone from the core team to chip in before I raise anything on Github (as i'm not sure if this is now expected)

Also can concur, msg.reset is not let through on a Pi2B or PiZero running NR 3.0.2 but is on NR 3.1.0 on a PiZero 2.

messages with msg.reset is allowed through the delay node · Issue #4337 · node-red/node-red (github.com)

Can confirm. Using 3.1.0 on Windows 11/Edge. From the example flow, having issued a couple of the injects, clicking the reset inject does NOT let the first msg through but it then DOES let subsequent reset messages through.