Type Error "list" Argument must be an Array

Hi there,

I applied a buffer in my node-red flow and have now encountered this problem in my CMD window, stopping the node-red server:

26 Jun 09:01:09 - TypeError: “list” argument must be an Array of Buffer or Uint8Array instances
at Function.Buffer.concat (buffer.js:446:13)
at completeSend (C:\Users\admin\AppData\Roaming\npm\node_modules\node-red\nodes\core\logic\17-split.js:457:40)
at Timeout. (C:\Users\admin\AppData\Roaming\npm\node_modules\node-red\nodes\core\logic\17-split.js:592:29)
at ontimeout (timers.js:498:11)
at tryOnTimeout (timers.js:323:5)
at Timer.listOnTimeout (timers.js:290:5)

I have uninstalled and reinstalled Node.js trying to solve it that way but it didn’t work. I am completely stuck and would very much appreciate some help on this!

Hi @BowenWT - what version of node.js are you using? My guess is you’re using too old a version. We require node 4.8 at a minimum to run, but even then, node 4 is no longer supported by node themselves so we would recommend Node 8

Hi @knolleary,

I am running: 8.11.3 LTS

I have solved the problem by deleting the 17-Split.js file, but obviously I now do not have that node anymore, I am going to try and re-download that list of functions and will update you with what I find.

If you’re running node 8 then you have likely hit a genuine bug. No amount of reinstalling things is going to change the code.

Can you share a bit more about what your flow is doing and what exactly you’re passing into the split node?

[edit] And please also confirm what version of Node-RED you’re using.

Sure thing.

My flow was this below, except it had a 'Join' node to connect the Modbus inputs, so I could then store the data as an array. I was trying the different modes in the 'Join' node and set it to buffer. I then encountered the problem that is the topic of this thread.

I am using node-red 18.7.

Hi - could you share what your flow actually is rather than a screenshot of what it was at some point?

Also, can you wire a Debug node alongside the split node so we can see exactly what format of message you are passing to the split node?

Hi,

Apologies I am new to Node-Red, flow will follow.

As I stated I had to delete the split/join node from my \node-modules\ folder to get my node-red server up an running again. I am currently downloading the core modules again.

[{“id”:“2fcee7b7.e5fbb8”,“type”:“modbustcp-read”,“z”:“e4b7c42f.224998”,“name”:“FC 4 [56] Port Bus Volts”,“topic”:“BusVolts”,“dataType”:“InputRegister”,“adr”:“56”,“quantity”:“1”,“rate”:“0.25”,“rateUnit”:“s”,“server”:“aed6a49c.829ce8”,“ieeeType”:“off”,“ieeeBE”:true,“x”:150,“y”:420,“wires”:[[]]},{“id”:“217c97cc.2c7eb8”,“type”:“csv”,“z”:“e4b7c42f.224998”,“name”:"",“sep”:",",“hdrin”:"",“hdrout”:"",“multi”:“one”,“ret”:"\n",“temp”:"",“skip”:“0”,“x”:830,“y”:500,“wires”:[[]]},{“id”:“9d2bfb66.caf7f8”,“type”:“function”,“z”:“e4b7c42f.224998”,“name”:“CSV”,“func”:“msg.payload = new Date().toString() + \n “,” + msg.payload;\nreturn msg;”,“outputs”:1,“noerr”:0,“x”:690,“y”:500,“wires”:[[]]},{“id”:“c9642359.fa997”,“type”:“modbustcp-read”,“z”:“e4b7c42f.224998”,“name”:“FC 4 [88] STBD Bus Volts”,“topic”:“BusVolts”,“dataType”:“InputRegister”,“adr”:“88”,“quantity”:“1”,“rate”:“0.25”,“rateUnit”:“s”,“server”:“aed6a49c.829ce8”,“ieeeType”:“off”,“ieeeBE”:true,“x”:150,“y”:500,“wires”:[[]]},{“id”:“aed6a49c.829ce8”,“type”:“modbustcp-server”,“z”:"",“name”:“Modbus_Server”,“host”:“192.168.1.107”,“port”:“502”,“unit_id”:“1”,“reconnecttimeout”:“0.1”}]

Solved. I pasted in the said corrupt split node and it now works fine. I just won’t set it to buffer.

Please could you share the failing flow? If there is a bug we’d like to fix it…

I tried to crash it again and it didn’t work would you still like the flow? I also have a new error related to the IoT Hub that has crashed my server, I will start a new thread.