Unable to update any nodes from the palette

Hi all,

Getting the following log when trying to update any node within the palette manger..
First thoughts are a permissions error, but I'm able to make changes to flows and they save properly in the flows.json file.
Any ideas I can try to resolve?

NodeRed 4.0.9 is running in a docker container on a Raspberry Pi4 8gb.


2025-05-04T09:46:44.091Z npm install --no-audit --no-update-notifier --no-fund --save --save-prefix=~ --omit=dev --engine-strict node-red-contrib-bigtimer@2.8.6

2025-05-04T09:46:51.340Z [err] npm error code ENOTEMPTY

2025-05-04T09:46:51.341Z [err] npm error syscall rename

2025-05-04T09:46:51.341Z [err] npm error path /data/node_modules/engine.io

2025-05-04T09:46:51.341Z [err] npm error dest /data/node_modules/.engine.io-A0yD1XTu

2025-05-04T09:46:51.342Z [err] npm error errno -39

2025-05-04T09:46:51.342Z [err] npm error ENOTEMPTY: directory not empty, rename '/data/node_modules/engine.io' -> '/data/node_modules/.engine.io-A0yD1XTu'

2025-05-04T09:46:51.349Z [err] npm error A complete log of this run can be found in: /data/.npm/_logs/2025-05-04T09_46_44_423Z-debug-0.log

2025-05-04T09:46:51.365Z rc=217```

This is (was) very common issue with many many threads on this forum alone.

I forget now why it happens (probably a bad NPM version or interrupted installation) but the fix is simple. Delete /data/node_modules/.engine.io-A0yD1XTu

PS, what version of node -v and npm -v are you rocking?

Hi Steve, thanks for your response.
I'm struggling to find .engine.io-A0yD1XTu or any file with A0yD1XTu in it's title.
Am I being dumb, or missing something obvious?

node is 20.19.0
npm is 10.8.2

Thanks

Since you are running in docker, you will need to go into the docker container - thats where you will find /data/node_modules/.engine.io-A0yD1XTu

Looking, but can't find this in the list.
No files start with a . and no folders starting with engine...
I'm sure I'm doing something wrong, but at a loss...
Thanks

Correction, there is a folder called engine, but nothing inside with A0yD1XTu
Ta

did you go inside the docker container?

did you find the /data dir?

did you ls with -a e.g. ls -a (files starting with . are hidden)

cd /data/node_modules
ls -a

Ahh ok, now I see the . folder, but it won't let me cd into it...
is there a modifier I need to cd to hidden folders?

just delete it. its a failed update.

# remove recursive
rm -rf /data/node_modules/.engine.io-A0yD1XTu
# check it is gone
ls -a /data/node_modules/
1 Like

Ohh dear.
I did the above.
Then tried to update the node and now getting the same error, but different code:
npm error dest /data/node_modules/.engine.io-parser-FXeX7bsL
The FXeX7bsL is new... lol

it might have been there to start with.

in short, any directories in node_modules that look like ". something -random-chars" is a duff install.

just keep deleting the ENOTEMPTY directories.

Here's the full log:


2025-05-04T10:31:28.206Z npm install --no-audit --no-update-notifier --no-fund --save --save-prefix=~ --omit=dev --engine-strict node-red-contrib-bigtimer@2.8.6
2025-05-04T10:31:35.346Z [err] npm error code ENOTEMPTY
2025-05-04T10:31:35.346Z [err] npm error syscall rename
2025-05-04T10:31:35.348Z [err] npm error path /data/node_modules/engine.io-parser
2025-05-04T10:31:35.348Z [err] npm error dest /data/node_modules/.engine.io-parser-FXeX7bsL
2025-05-04T10:31:35.349Z [err] npm error errno -39
2025-05-04T10:31:35.349Z [err] npm error ENOTEMPTY: directory not empty, rename '/data/node_modules/engine.io-parser' -> '/data/node_modules/.engine.io-parser-FXeX7bsL'
2025-05-04T10:31:35.356Z [err] npm error A complete log of this run can be found in: /data/.npm/_logs/2025-05-04T10_31_28_522Z-debug-0.log
2025-05-04T10:31:35.372Z rc=217```

Is there a wildcard that I can use to do them all at once?

just crack on - there will not be many.

just list them out then do em 1 by 1

e.g.

cd /data/node_modules
find . -maxdepth 1 -type d -name ".*-*"

or

cd /data/node_modules
ls -ad .*-*

Thank you. Cycled through, about 6 in the end.
Now updating without issue. Many thanks.