Hello,
While doing test on NR, I have been facing to this issue
13 Dec 07:35:45 - [error] [switch:c316c1362446b8d3] TypeError: Cannot read properties of null (reading 'hasOwnProperty')
at processMessage ([/home/mxxxxx/node_modules/@node-red/nodes/core/function/10-switch.js:444:39](mailto:/home/m11172/node_modules/@node-red/nodes/core/function/10-switch.js:444:39))
at processMessageQueue ([/home/mxxxxx/node_modules/@node-red/nodes/core/function/10-switch.js:504:13](mailto:/home/m11172/node_modules/@node-red/nodes/core/function/10-switch.js:504:13))
at SwitchNode._inputCallback ([/home/mxxxxx/node_modules/@node-red/nodes/core/function/10-switch.js:513:13](mailto:/home/m11172/node_modules/@node-red/nodes/core/function/10-switch.js:513:13))
at [/home/mxxxxx/node_modules/@node-red/runtime/lib/nodes/Node.js:210:26](mailto:/home/m11172/node_modules/@node-red/runtime/lib/nodes/Node.js:210:26)
at Object.trigger ([/home/mxxxxx/node_modules/@node-red/util/lib/hooks.js:166:13](mailto:/home/m11172/node_modules/@node-red/util/lib/hooks.js:166:13))
at Node._emitInput ([/home/mxxxxx/node_modules/@node-red/runtime/lib/nodes/Node.js:202:11](mailto:/home/m11172/node_modules/@node-red/runtime/lib/nodes/Node.js:202:11))
at Node.emit ([/home/mxxxxx/node_modules/@node-red/runtime/lib/nodes/Node.js:186:25](mailto:/home/m11172/node_modules/@node-red/runtime/lib/nodes/Node.js:186:25))
at Node.receive ([/home/mxxxxx/node_modules/@node-red/runtime/lib/nodes/Node.js:485:10](mailto:/home/m11172/node_modules/@node-red/runtime/lib/nodes/Node.js:485:10))
at Immediate._onImmediate ([/home/mxxxxx/node_modules/@node-red/runtime/lib/flows/Flow.js:831:52](mailto:/home/m11172/node_modules/@node-red/runtime/lib/flows/Flow.js:831:52))
at process.processImmediate (node:internal/timers:471:21)
after troubleshooting, this is related to having a msg with msg.parts= null
I will not said this is really a bug as issue is related to malformed packet.
after checking in the code,
function processMessage(msg, checkParts, done) {
var hasParts = msg.hasOwnProperty("parts") &&
msg.parts.hasOwnProperty("id") &&
msg.parts.hasOwnProperty("index");
I think it may be interesting to replace by new JS notation
var hasParts = !!(msg?.parts?.id &&
msg?.parts?.index);
which in case of malformed msg, will not break the flow any more
AB