tteck / Proxmox

Proxmox VE Helper-Scripts
https://Helper-Scripts.com
MIT License
12.92k stars 2k forks source link

Cannot update n8n LXC #3587

Closed ajtatum closed 2 weeks ago

ajtatum commented 2 weeks ago

Please verify that you have read and understood the guidelines.

yes

A clear and concise description of the issue.

I've installed n8n via your script a long while ago and haven't had issues updating previously. However, now I'm trying to update n8n from v1.50.2 to v1.55.3 and when I run update (as root), I get [ERROR] in line 67: exit code 0: while executing command npm update -g n8n &> /dev/null.

What settings are you currently utilizing?

Default Settings

Which Linux distribution are you employing?

Debian 12

If relevant, including screenshots or a code block can be helpful in clarifying the issue.

No response

Please provide detailed steps to reproduce the issue.

When I run update (as root), I get [ERROR] in line 67: exit code 0: while executing command npm update -g n8n &> /dev/null.

When I try to manually run npm install --global patch-package and then npm install --global n8n@1.55.3 from the root home directory, I don't get any errors (there are warnings which is typical). I then run systemctl restart n8n but n8n doesn't show as updated in the UI. When I try and run npm update -g n8n manually, that does return an error:

npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@n8n/tournament@1.0.5',
npm warn EBADENGINE   required: { node: '>=20.15', pnpm: '>=9.5' },
npm warn EBADENGINE   current: { node: 'v18.20.4', npm: '10.7.0' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@n8n_io/ai-assistant-sdk@1.9.4',
npm warn EBADENGINE   required: { node: '>=20.15', pnpm: '>=8.14' },
npm warn EBADENGINE   current: { node: 'v18.20.4', npm: '10.7.0' }
npm warn EBADENGINE }
npm error code ETARGET
npm error notarget No matching version found for xlsx@0.20.2.
npm error notarget In most cases you or one of your dependencies are requesting
npm error notarget a package version that doesn't exist.

npm error A complete log of this run can be found in: /root/.npm/_logs/2024-08-25T13_52_50_135Z-debug-0.log

It's weird the npm update returns an error but installing the specific latest version doesn't return an error. Perhaps update is grabbing the next version? I don't know. It also looks like n8n may be targeting a new version of NodeJS with the EBADENGINE warnings.

Your help/advice would be sincerely appreciated!

ajtatum commented 2 weeks ago

I noticed in an commit to install/n8n-install.sh that you're now installing NodeJS v20. So I updated /etc/apt/sources.list.d/nodesource.list to point to v20 by updating it's contents to deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main. I then ran apt update and apt upgrade to update node. I then tried running the update script again and received the same error. When I try to manually run npm update -g n8n I get the following error:

npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@azure/msal-node@1.18.4',
npm warn EBADENGINE   required: { node: '10 || 12 || 14 || 16 || 18' },
npm warn EBADENGINE   current: { node: 'v20.17.0', npm: '10.8.2' }
npm warn EBADENGINE }
npm error code ETARGET
npm error notarget No matching version found for xlsx@0.20.2.
npm error notarget In most cases you or one of your dependencies are requesting
npm error notarget a package version that doesn't exist.
npm error A complete log of this run can be found in: /root/.npm/_logs/2024-08-25T14_03_35_507Z-debug-0.log

Basically the same error.

ajtatum commented 2 weeks ago

In the file /usr/lib/node_modules/n8n/package.json it shows version as 1.55.3.

tteck commented 2 weeks ago
         ___        
        / _ \       
  _ __ | (_) |____  
 |  _ \ > _ <|  _ \ 
 | | | | (_) | | | |
 |_| |_|\___/|_| |_|

 ✓ Updated Successfully
root@n8n:~#
tteck commented 2 weeks ago

Maybe ask over at https://community.n8n.io/

tteck commented 2 weeks ago

🧐 As this issue is unrelated to the script, it is considered closed.