Skip to content

After updating to 5.0.0 the frontend is not loading correctly anymore #405

Description

@lucaheft

OS

Debian GNU/Linux 13 (trixie)

Node.js Version

v24.14.1

Version verification

  • I verified the issue also occurs on a current Node.js version (e.g., latest LTS or 24.x), not only on an outdated one.

MagicMirror² Version

2.36.0

MagicMirror² version verification

  • I verified the issue also occurs on the latest MagicMirror² release (not only on an outdated one).

Remote Control Version

5.0.0

Minimal reproduction

  • I enabled only MMM-Remote-Control (other modules disabled) and the issue still occurs.

Description

When loading the Web UI I get the following error:

Uncaught Error: MMSocket is not available. socketclient.js failed to load.
    at Object.socket (remote-socket.mjs:24:17)
    at Object.sendSocketNotification (remote-socket.mjs:54:12)
    at Remote.init (remote.mjs:422:10)
    at remote-menu.mjs:1054:10

When reverting back to v4.8.6 it works again.

Seems like this commit is responsible for the error:
7604e67

Expected behavior

The Web UI works

Current behavior

It shows an error message

Possible solution

No response

Steps to reproduce

Try to access the Web UI in 5.0.0

Screenshots (optional)

No response

Log

[2026-06-09 22:13:00.621] [LOG]   [app] Starting MagicMirror: v2.36.0
[2026-06-09 22:13:00.645] [LOG]   [utils] Loading config ...
[2026-06-09 22:13:00.655] [INFO]  [utils] Checking config file /home/pi/MagicMirror/config/config.js ...
[2026-06-09 22:13:00.836] [INFO]  [utils] Your configuration file doesn't contain syntax errors :)
[2026-06-09 22:13:00.837] [INFO]  [utils] Checking modules structure configuration ...
[2026-06-09 22:13:00.999] [INFO]  [utils] Your modules structure configuration doesn't contain errors :)
[2026-06-09 22:13:01.006] [LOG]   [app] Loading module helpers ...
[2026-06-09 22:13:01.063] [LOG]   [node_helper] Initializing new module helper ...
[2026-06-09 22:13:01.065] [LOG]   [node_helper] Module helper loaded: MMM-ModuleScheduler
[2026-06-09 22:13:01.318] [LOG]   [node_helper] Initializing new module helper ...
[2026-06-09 22:13:01.323] [LOG]   [node_helper] Module helper loaded: MMM-Remote-Control
[2026-06-09 22:13:01.324] [LOG]   [app] No helper found for module: alert.
[2026-06-09 22:13:01.340] [LOG]   [node_helper] Initializing new module helper ...
[2026-06-09 22:13:01.341] [LOG]   [node_helper] Module helper loaded: updatenotification
[2026-06-09 22:13:01.342] [LOG]   [app] No helper found for module: clock.
[2026-06-09 22:13:01.734] [LOG]   [node_helper] Initializing new module helper ...
[2026-06-09 22:13:01.735] [LOG]   [node_helper] Module helper loaded: calendar
[2026-06-09 22:13:01.741] [LOG]   [node_helper] Initializing new module helper ...
[2026-06-09 22:13:01.742] [LOG]   [node_helper] Module helper loaded: weather
[2026-06-09 22:13:01.743] [LOG]   [app] All module helpers loaded.
[2026-06-09 22:13:01.765] [LOG]   [server] Starting server on port 8080 ... 
[2026-06-09 22:13:01.837] [LOG]   [app] Server started ...
[2026-06-09 22:13:01.839] [LOG]   [node_helper] Connecting socket for: MMM-ModuleScheduler
[2026-06-09 22:13:01.841] [LOG]   [MMM-ModuleScheduler] Starting node helper for: MMM-ModuleScheduler
[2026-06-09 22:13:01.842] [LOG]   [node_helper] Connecting socket for: MMM-Remote-Control
[2026-06-09 22:13:01.843] [LOG]   [MMM-Remote-Control] Starting node helper for: MMM-Remote-Control
[2026-06-09 22:13:01.878] [LOG]   [node_helper] Connecting socket for: updatenotification
[2026-06-09 22:13:01.879] [LOG]   [node_helper] Starting module helper: updatenotification
[2026-06-09 22:13:01.880] [LOG]   [node_helper] Connecting socket for: calendar
[2026-06-09 22:13:01.881] [LOG]   [calendar] Starting node helper for: calendar
[2026-06-09 22:13:01.883] [LOG]   [node_helper] Connecting socket for: weather
[2026-06-09 22:13:01.884] [LOG]   [weather] Starting node helper for: weather
[2026-06-09 22:13:01.885] [LOG]   [app] Sockets connected & modules started ...
[2026-06-09 22:13:02.591] [LOG]   [electron] Launching application.
[2026-06-09 22:13:02.744] [INFO]  [systeminformation] 
####  System Information  ####
- SYSTEM:   manufacturer: Raspberry Pi Foundation; model: Raspberry Pi 4 Model B Rev 1.4; virtual: false; MM: v2.36.0
- OS:       platform: linux; distro: Debian GNU/Linux; release: 13; arch: arm64; kernel: 6.12.75+rpt-rpi-v8
- VERSIONS: electron: 41.3.0; used node: 24.14.1; installed node: 24.14.1; npm: 11.11.0; pm2: 6.0.14
- ENV:      XDG_SESSION_TYPE: wayland; MM_CONFIG_FILE: undefined
            WAYLAND_DISPLAY:  wayland-0; DISPLAY: :0; ELECTRON_ENABLE_GPU: undefined
- RAM:      total: 7820.66 MB; free: 6436.00 MB; used: 1384.66 MB
- OTHERS:   uptime: 3 minutes; timeZone: Europe/Berlin
[2026-06-09 22:13:04.914] [LOG]   [weather] Received INIT_WEATHER for instance module_7_weather
[2026-06-09 22:13:04.915] [LOG]   [weather] Attempting to initialize provider openmeteo for instance module_7_weather
[2026-06-09 22:13:04.916] [LOG]   [weather] Loading provider from: /home/pi/MagicMirror/defaultmodules/weather/providers/openmeteo.js
[2026-06-09 22:13:05.053] [LOG]   [calendar] Create new calendarfetcher for url: https://ics.tools/Feiertage/baden-württemberg.ics - Interval: 604800000
[2026-06-09 22:13:05.067] [LOG]   [weather] Received INIT_WEATHER for instance module_6_weather
[2026-06-09 22:13:05.068] [LOG]   [weather] Attempting to initialize provider openmeteo for instance module_6_weather
[2026-06-09 22:13:05.069] [LOG]   [weather] Loading provider from: /home/pi/MagicMirror/defaultmodules/weather/providers/openmeteo.js
[2026-06-09 22:13:05.084] [INFO]  [updatenotification] Updater Class Loaded!
[2026-06-09 22:13:05.085] [INFO]  [updatenotification] Checking PM2 using...
[2026-06-09 22:13:05.310] [INFO]  [updatenotification] Checking git for module: MMM-ModuleScheduler
[2026-06-09 22:13:05.380] [INFO]  [updatenotification] Checking git for module: MMM-Remote-Control
[2026-06-09 22:13:05.403] [INFO]  [updatenotification] Checking git for module: MagicMirror
[2026-06-09 22:13:05.448] [INFO]  [updatenotification] [PM2] You are using pm2 with id: 0 (mm)
[2026-06-09 22:13:05.605] [INFO]  [calendar] Broadcasting 12 events from https://ics.tools/Feiertage/baden-württemberg.ics.
[2026-06-09 22:13:05.619] [LOG]   [weather] Weather provider openmeteo initialized for instance module_7_weather
[2026-06-09 22:13:05.712] [LOG]   [weather] Weather provider openmeteo initialized for instance module_6_weather

config.js

/* Config Sample
 *
 * For more information on how you can configure this file
 * see https://docs.magicmirror.builders/configuration/introduction.html
 * and https://docs.magicmirror.builders/modules/configuration.html
 *
 * You can use environment variables using a `config.js.template` file instead of `config.js`
 * which will be converted to `config.js` while starting. For more information
 * see https://docs.magicmirror.builders/configuration/introduction.html#enviromnent-variables
 */
let config = {
	address: "0.0.0.0",	// Address to listen on, can be:
	// - "localhost", "127.0.0.1", "::1" to listen on loopback interface
	// - another specific IPv4/6 to listen on a specific interface
	// - "0.0.0.0", "::" to listen on any interface
	// Default, when address config is left out or empty, is "localhost"
	port: 8080,
	basePath: "/",	// The URL path where MagicMirror² is hosted. If you are using a Reverse proxy
	// you must set the sub path here. basePath must end with a /
	ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1", "192.168.0.1/24"],	// Set [] to allow all IP addresses
	// or add a specific IPv4 of 192.168.1.5 :
	// ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.1.5"],
	// or IPv4 range of 192.168.3.0 --> 192.168.3.15 use CIDR format :
	// ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.3.0/28"],

	useHttps: false,			// Support HTTPS or not, default "false" will use HTTP
	httpsPrivateKey: "",	// HTTPS private key path, only require when useHttps is true
	httpsCertificate: "",	// HTTPS Certificate path, only require when useHttps is true

	language: "en",
	locale: "en-US",   // this variable is provided as a consistent location
	// it is currently only used by 3rd party modules. no MagicMirror code uses this value
	// as we have no usage, we  have no constraints on what this field holds
	// see https://en.wikipedia.org/wiki/Locale_(computer_software) for the possibilities

	logLevel: ["INFO", "LOG", "WARN", "ERROR"], // Add "DEBUG" for even more logging
	timeFormat: 24,
	units: "metric",

	modules: [
		{
			module: 'MMM-ModuleScheduler',
			config: {
				notification_schedule: [
					{ notification: 'REMOTE_ACTION', schedule: '45 8 * * 1-5', payload: { action: "MONITORON" } },
					{ notification: 'REMOTE_ACTION', schedule: '30 9 * * 1-5', payload: { action: "MONITOROFF" } },
					{ notification: 'REMOTE_ACTION', schedule: '15 17 * * *', payload: { action: "MONITORON" } },
					{ notification: 'REMOTE_ACTION', schedule: '00 1 * * *', payload: { action: "MONITOROFF" } }
				]
			}
		},
		{
			module: 'MMM-Remote-Control',
			// position: 'bottom_left', // Required to show URL/QR code on mirror
			// you can hide this module afterwards from the remote control itself
			config: {
				customCommand: {
					monitorOnCommand: 'echo "on 0" | cec-client -s -d 1',
					monitorOffCommand: 'echo "standby 0" | cec-client -s -d 1',
					monitorStatusCommand: 'echo "pow 0" | cec-client -s -d 1 | grep -q "power status: on" && echo "true" || echo "false"'
				},  // Optional, See "Using Custom Commands" below
				secureEndpoints: true, // Optional, See API/README.md
				// uncomment any of the lines below if you're gonna use it
				// customMenu: "custom_menu.json", // Optional, See "Custom Menu Items" below
				apiKey: "<redacted>", // Optional, See API/README.md for details
				// classes: {}, // Optional, See "Custom Classes" below
				// showModuleApiMenu: false, // Optional, disable the Module Controls menu
				// showNotificationMenu: false, // Optional, disable the Notification menu

				// QR Code options (new!)
				// showQRCode: true, // Optional, display QR code for easy mobile access (default: true)
				// qrCodeSize: 150, // Optional, size of QR code in pixels (default: 150)
				// qrCodePosition: "below" // Optional:
				//   "below" - Show URL above, QR code below (default)
				//   "above" - Show QR code above, URL below
				//   "replace" - Show only QR code, no URL text
			}
		},
		{
			module: "alert",
		},
		{
			module: "updatenotification",
			position: "top_bar"
		},
		{
			module: "clock",
			position: "top_left"
		},
	]
};

/*************** DO NOT EDIT THE LINE BELOW ***************/
if (typeof module !== "undefined") { module.exports = config; }

Additional info

No response

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions