Error when starting Node-Red

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

To find more nodes and example flows - go to http://flows.nodered.org

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...

edit: makes no difference

Instead of node-red-start, does it give you any different output if you use node-red, which does not run the systemd script?

node-red just gives "illegal instruction" back (in Dutch)

What do these commands show?
npm -v
node -v

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.

npm -v: 11.16.0
node -v: 24.18.1

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....

I think that's the first we've heard about errors during install?

It seems a bit drastic to consider reinstalling 35 working VMs because you can't get NR working?

But i know nothing about VMs or proxmox, so I'll hush up.

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.

I would suggest you need to work out how to enable your Debian instance to create full core files (systemd-coredump(8) — systemd-coredump — Debian trixie — Debian Manpages)on a failure and then probably open a NodeJS GitHub Issue (GitHub - nodejs/node: Node.js JavaScript runtime ✨🐢🚀✨ · GitHub) where they should be able to work out what instruction is being generated and why.

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....

Have you tried an LXC (CT) instead of a VM (why use VM's when you have LXC at your disposal, those are much more efficient and tiny) ?

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.