Read the statement by Michael Teeuw here.
Help with upgrading to 2.30.0
- 
 My MM worked fine under 2.29.0. I had to run some updates recently to MMM-CalendarExt3 and MMM-Pir, and noticed that there was a new version - 2.30.0. I tried to run the sdetweil upgrade script, but things totally went sideways. At first, MMM-CalendarExt3 wouldn’t pull events from Google Calendar, and MMM-Pir would show up as undefined. Then things got worse - now MM won’t even run at all. Please help. Below is the output from my current state of trying to run the sdetweil scripts: Running test script: @raspberrypi:~/MagicMirror $ bash -c “$(curl -sL https://raw.githubusercontent.com/sdetweil/MagicMirror_scripts/master/upgrade-script.sh)” 
 update log will be in /home//MagicMirror/installers/upgrade.logdoing test run = true, NO updates will be applied! Check current Node installation … 
 Node currently installed. Checking version number.
 Minimum Node version: v20.18.1
 Installed Node version: V1.0.0
 Node should be upgraded.
 Node.js upgrade defered, doing test run
 Check current NPM installation …
 NPM currently installed. Checking version number.
 Minimum npm version: V10.8.2
 Installed npm version: V10.8.2
 No npm upgrade necessary.saving custom.css 
 reverting to master branch from (HEAD, saving changed files
 Previous HEAD position was 94c3c699 Release 2.29.0 (#3568)
 Switched to branch ‘master’
 upgrading from version 2.30.0 to 2.30.0
 fetching latest revisions
 cp: cannot stat ‘installers/mm.sh’: No such file or directoryChecking for modules with removed libraries 
 bash: line 937: /usr/local/bin/node: No such file or directory
 no modules found needing npm refresh
 restoring custom.cssRunning update script: @raspberrypi:~/MagicMirror $ bash -c “$(curl -sL https://raw.githubusercontent.com/sdetweil/MagicMirror_scripts/master/upgrade-script.sh)” apply 
 update log will be in /home//MagicMirror/installers/upgrade.log
 doing test run = false
 Node currently installed. Checking version number.
 Minimum Node version: v20.18.1
 Installed Node version: V1.0.0
 installing correct version of node and npm, please wait
 /usr/local/bin/n: line 746: /usr/local/bin/node: No such file or directory
 Check current Node installation …
 Node currently installed. Checking version number.
 Minimum Node version: v20.18.1
 Installed Node version: V1.0.0
 Node should be upgraded.
 Installing Node.js …
 apply: line 318: [: too many arguments
 tar (child): /home//node_release-.tar.gz: Cannot open: No such file or directory
 tar (child): Error is not recoverable: exiting now
 tar: Child returned status 2
 tar: Error is not recoverable: exiting now
 node version is apply: line 353: /usr/local/bin/node: No such file or directory
 apply: line 355: /usr/local/bin/node: No such file or directory
 Node.js installation Done! version=
 apply: line 361: [: too many arguments
 Check current NPM installation …
 NPM currently installed. Checking version number.
 Minimum npm version: V10.8.2
 Installed npm version: V10.8.2
 No npm upgrade necessary.saving custom.css 
 local version 2.30.0 already same as master 2.30.0
 restoring custom.css
 @raspberrypi:~/MagicMirror $—-------------------------- 
 Trying to run MagicMirror@raspberrypi:~/MagicMirror $ npm run start magicmirror@2.30.0 start 
 npm run start:x11magicmirror@2.30.0 start:x11 
 DISPLAY=“${DISPLAY:=:0}” ./node_modules/.bin/electron js/electron.js[2025-01-03 02:01:30.545] [ERROR] App threw an error during load 
 [2025-01-03 02:01:30.549] [ERROR] Error: Cannot find module ‘undici’
 Require stack:- /home//MagicMirror/js/app.js
- /home//MagicMirror/js/electron.js
 at Module._resolveFilename (node:internal/modules/cjs/loader:1232:15)
 at s._resolveFilename (node:electron/js2c/browser_init:2:121498)
 at Module._resolveFilename (/home//MagicMirror/node_modules/module-alias/index.js:49:29)
 at Module._load (node:internal/modules/cjs/loader:1058:27)
 at c._load (node:electron/js2c/node_init:2:17025)
 at Module.require (node:internal/modules/cjs/loader:1318:19)
 at require (node:internal/modules/helpers:179:18)
 at Object. (/home//MagicMirror/js/app.js:15:40)
 at Module._compile (node:internal/modules/cjs/loader:1484:14)
 at Module._extensions…js (node:internal/modules/cjs/loader:1564:10)
 at Module.load (node:internal/modules/cjs/loader:1295:32)
 at Module._load (node:internal/modules/cjs/loader:1111:12)
 at c._load (node:electron/js2c/node_init:2:17025)
 at Module.require (node:internal/modules/cjs/loader:1318:19)
 at require (node:internal/modules/helpers:179:18)
 at Object. (/home//MagicMirror/js/electron.js:4:14)
 A JavaScript error occurred in the main process
 Uncaught Exception:
 Error: Cannot find module ‘undici’
 Require stack:
- /home//MagicMirror/js/app.js
- /home//MagicMirror/js/electron.js
 at Module._resolveFilename (node:internal/modules/cjs/loader:1232:15)
 at s._resolveFilename (node:electron/js2c/browser_init:2:121498)
 at Module._resolveFilename (/home//MagicMirror/node_modules/module-alias/index.js:49:29)
 at Module._load (node:internal/modules/cjs/loader:1058:27)
 at c._load (node:electron/js2c/node_init:2:17025)
 at Module.require (node:internal/modules/cjs/loader:1318:19)
 at require (node:internal/modules/helpers:179:18)
 at Object. (/home//MagicMirror/js/app.js:15:40)
 at Module._compile (node:internal/modules/cjs/loader:1484:14)
 at Module._extensions…js (node:internal/modules/cjs/loader:1564:10)
 at Module.load (node:internal/modules/cjs/loader:1295:32)
 at Module._load (node:internal/modules/cjs/loader:1111:12)
 at c._load (node:electron/js2c/node_init:2:17025)
 at Module.require (node:internal/modules/cjs/loader:1318:19)
 at require (node:internal/modules/helpers:179:18)
 at Object. (/home//MagicMirror/js/electron.js:4:14)
 ^C/home//MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT
 —-------------------------------------------------- 
 Trying full installation:@raspberrypi:~/MagicMirror $ bash -c “$(curl -sL https://raw.githubusercontent.com/sdetweil/MagicMirror_scripts/master/raspberry.sh)” $$\ $$\ $$\ $$\ $$\ $$\ $$$$$$ 
 $$$\ $$$ | _| $$$\ $$$ |_| $$ $$
 $$$$\ $$$$ | $$$$$$\ $$$$$$\ $$\ $$$$$$$\ $$$$\ $$$$ |$$\ $$$$$$\ $$$$$$\ $$$$$$\ $$$$$$\ _/ $$ |
 $$$$$$ $$ | _$$\ $$ $$\ $$ |$$ |$$$$$$ $$ |$$ |$$ $$\ $$ $$\ $$ $$\ $$ $$\ $$$$$$ |
 $$ $$$ $$ | $$$$$$$ |$$ / $$ |$$ |$$ / $$ $$$ $$ |$$ |$$ | _|$$ | _|$$ / $$ |$$ | _|$$ /
 $$ |$ /$$ |$$ __$$ |$$ | $$ |$$ |$$ | $$ |$ /$$ |$$ |$$ | $$ | $$ | $$ |$$ | $$ |
 $$ | _/ $$ |$$$$$$$ |$$$$$$$ |$$ |$$$$$$$\ $$ | _/ $$ |$$ |$$ | $$ | $$$$$$ |$$ | $$$$$$$$
 _| _| _| _$$ |_| _|_| _|_|_| __| _/ _| _______|
 $$\ $$ |
 $$$$$$ |
 _____/install log being saved to /home//install.log 
 Updating packages …
 [ <=> ]
 Installing helper tools …
 bash: line 287: /usr/local/bin/node: No such file or directory
 node failed to execute, please check the error message and resolve before trying again
 @raspberrypi:~/MagicMirror $
- 
 @siujd2001 let me look at that looks like you had pulled the develop branch on 2.29 
- 
 @sdetweil After everything was borked, I did try to run 2.29.0 and everything went back to “normal” except MMM-Pir, which remained as “undefined”. Currently nothing works at all. 
- 
 @siujd2001 can you post the ~/MagicMirror/installers/upgrade.log it has more info it may be big, so email to me at my same userid at gmail.com it has no personal info in it 
- 
 @siujd2001 yes, node is messed up, and then you can’t npm install cause node is messed up, but the code was changed… so you are half installed… I need the log to see more detail, so I can advise how to fix it 
- 
 @mvrlogins yes, doing test run. because your (all of you) MagicMirror systems have been built and are important to you, i am very cautious about making changes. we update MagicMirror 4 times a year, i dont need to crash your system every time!! so upgrade is a 2 part process also, many users, not yet knowing the system design, change MagicMirror files which should not and do not need to be modified. but IF modified, the update will fail unless forced AND your changes (which you may not remember) will be lost 1st is test, make no changes if all goes well 2nd pass, actually DO the upgrade, same command, with an additional parameter , apply 
 there is a second copy/paste line in the doc for thisyou only did pass 1, test mode 
