I run Node-Red on a vm (proxmox) on Debian13. I just updated with the script.
I already added the line Environment="NODE_RED_OPTIONS=" in nodered.service.
But I still get the following error:
warner@nodered3:~$ node-red-start
Start Node-RED
Once Node-RED has started, point a browser at http://192.168.17.220:1880
On Pi Node-RED works better with the Firefox or Chrome browser
Use node-red-stop to stop Node-RED
Use node-red-start to start Node-RED again
Use node-red-log to view the recent log output
Use sudo systemctl enable nodered.service to autostart Node-RED at every boot
Use sudo systemctl disable nodered.service to disable autostart on boot
Starting as a systemd service.
Stopped nodered.service - Node-RED graphical event wiring tool.
Started nodered.service - Node-RED graphical event wiring tool.
nodered.service: Main process exited, code=killed, status=4/ILL
nodered.service: Failed with result 'signal'.
and that keeps on repeating till node-red-stop
Addition:
When I use a vm on VirtualBox everything works. I tried again a vm on Proxmox with a clean install of Debian13 and that also gives the error and "illegal instruction".
That is with an QEMU64 cpu.
I'll try a different one...
Assuming that you have up to date but not bleeding-edge versions of npm (?), node.js (24) and node-red (5.0.4) it might be sensible to re-run the install script.
Note that the script name was recently changed. Be sure to run the command as given in "Getting started" on the website.
Another thing to try is to rename the .node-red folder temporarily and then try to start node-red. It will recreate the folder and start with a clean slate. If it starts up ok then it is something about the flow or nodes that you have installed. If it does work then put the .node-red folder back, delete the node_modules folder in there and, in the .node-red folder run npm install
which will re-install all extra nodes that you have used in your flow. Then restart node-red again.
The thing is it goes wrong while installing. And the machine I run Proxmox on is an AMD.Phenom II X4. So I took an Intel machine that was available, an I5-2400.
There I could install Node-Red with no errors on Proxmox.
So what must I conclude: I think there is something wrong with the AMD installation. But there are 35 vm's installed on it. So re-install will be a challenge (at least the backup and restore of these vm's).
But I think that is the way to go...
To test if the conclusion is right I might takeout all disks and put in some other and install...
I realize now that I had not updated the intel machine to the latest Proxmox...
I will do that and test again.
And maybe move the working vm from the intel to the amd...
edit: the working vm from the updated intel moved to the amd does not work....
Why did you describe the problem as an error when starting node-red instead of an error while installing it?
What error are you seeing while installing? Show us the install log (which is mentioned at the end of the install).
Did you try what I suggested, renaming .node-red?
I would not really expect it to work if the processors have different instruction sets, though like @jbudd I don't know about VMs used like that.
If the NodeJS is failing with a SIGILL under proxymox but not VirtualBox then this implies a problem in the virtualization layer.
SIGILL/Illigal Instruction most likely means that the Just In Time Compiler in NodeJS has generated an instruction that is not supported by the virtual CPU that proxmox is providing.
while doing that you may also be able to try tweaking the virtual CPU settings to select other/older? types... and then re-install nodejs again - but yes could be a slow process of elimination.
So, assuming that we actually now now the exact error, this is clearly not a Node-RED issue.
I can see others have had similar issues in the past:
Leo AI said this:
The "Illegal instruction (core dumped)" error in Node.js on Proxmox is primarily caused by CPU instruction set mismatches, specifically the lack of AVX or AVX2 support being passed to the virtual machine.
Common Causes and Solutions:
Default CPU Model Limitations: Proxmox defaults to the KVM64 CPU model for Linux guests, which does not support AVX instructions. Modern versions of Node.js (especially v16+) often require AVX.
Fix: Change the VM's CPU model from KVM64 to Host. This passes the host processor's full instruction set (including AVX/AVX2) to the guest.
Virtualization Passthrough: If using KVM or QEMU, the default settings may hide advanced CPU features.
Fix: Ensure AVX and AVX2 flags are explicitly enabled in the VM configuration or use host-passthrough to expose the physical CPU capabilities.
Old Hardware Compatibility: If running on older hardware (e.g., AMD Phenom II or Opteron 23xx) that lacks AVX, newer Node.js binaries will crash.
Fix: Compile Node.js from source with AVX disabled, or use an older Node.js version (e.g., v13 or earlier) that does not require AVX.
Architecture Mismatch: Ensure the Node.js binary matches the guest architecture (e.g., x86_64 vs ARM). Installing ARM packages on x86 systems or vice versa will cause this error.
Fix: Verify with uname -m and install the correct architecture-specific Node.js package.
Recommended Step: Change the Proxmox VM CPU type to Host in the hardware settings, restart the VM, and reinstall Node.js.
I already used cputype Host but that does not solve the problem.
I decided to use temporary a different host where I have the node running.
My workaround is now to put later another motherboard in the original machine.
I have one at another place temporarily that will do I think.
Maybe a Phenom is too old....
Yes, a CT gives the same problems. I discovered the error with a CT because I used a ProxMox-VE-helperscript and that uses a CT.
Im going to swap the motherbord for a newer one to get things working again.
I am convinced it is due to the CPU not having the instructions that are used as someone said before.