{"record":{"id":"1dbb4a3da3af389e","repo":"MagicMirrorOrg/MagicMirror","slug":"version-is-incorrect-skip-module-modulename","errorCode":null,"errorMessage":"Version is incorrect. Skip module: '${moduleName}'","messagePattern":"Version is incorrect\\. Skip module: '(.+?)'","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"js/app.js","lineNumber":128,"sourceCode":"\t\t}\n\n\t\t// if the helper was found\n\t\tif (loadHelper) {\n\t\t\tlet Module;\n\t\t\ttry {\n\t\t\t\tModule = require(helperPath);\n\t\t\t} catch (e) {\n\t\t\t\tLog.error(`Error when loading ${moduleName}:`, e.message);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tlet m = new Module();\n\n\t\t\tif (m.requiresVersion) {\n\t\t\t\tLog.log(`Check MagicMirror² version for node helper '${moduleName}' - Minimum version: ${m.requiresVersion} - Current version: ${global.version}`);\n\t\t\t\tif (cmpVersions(global.version, m.requiresVersion) >= 0) {\n\t\t\t\t\tLog.log(\"Version is ok!\");\n\t\t\t\t} else {\n\t\t\t\t\tLog.warn(`Version is incorrect. Skip module: '${moduleName}'`);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tm.setName(moduleName);\n\t\t\tm.setPath(path.resolve(moduleFolder));\n\t\t\tnodeHelpers.push(m);\n\n\t\t\tm.loaded();\n\t\t}\n\t}\n\n\t/**\n\t * Loads all modules.\n\t * @param {Module[]} modules All modules to be loaded\n\t * @returns {Promise} A promise that is resolved when all modules been loaded\n\t */\n\tasync function loadModules (modules) {","sourceCodeStart":110,"sourceCodeEnd":146,"githubUrl":"https://github.com/MagicMirrorOrg/MagicMirror/blob/4b4a59534f7da01e4030e46029fe9dd649a7675e/js/app.js#L110-L146","documentation":"Each node_helper can declare `requiresVersion`; loadModule compares it against the running MagicMirror global.version using cmpVersions. If the current version is lower than required, it warns 'Version is incorrect. Skip module' and returns — the module's node_helper is not loaded at all, so the module will not function server-side.","triggerScenarios":"Installing a module written for a newer MagicMirror² (requiresVersion set to e.g. '2.16.0') while running an older core (e.g. 2.14.0); cmpVersions returns negative and the module is skipped.","commonSituations":"Community modules from the wiki requiring newer core APIs than an outdated MagicMirror install; long-running installs not upgraded before adding new modules; Raspberry Pi images with pinned old versions.","solutions":["Upgrade MagicMirror² core to at least the module's requiresVersion value.","Alternatively, install an older release of the module compatible with your core version.","Check the version requirement in the module's node_helper.js and your `npm run start`/version output to confirm the gap."],"exampleFix":"// before: MagicMirror v2.14.0 with module node_helper\ntoo old, module skipped\n// after\ngit pull && npm install (upgrade MagicMirror to >= required version), restart","handlingStrategy":"validation","validationCode":"// compare core version against module requirement before install\nconst cmpVersions = (a, b) => {\n  const pa = a.split(\".\").map(Number), pb = b.split(\".\").map(Number);\n  for (let i = 0; i < 3; i++) {\n    if ((pa[i] || 0) !== (pb[i] || 0)) return (pa[i] || 0) - (pb[i] || 0);\n  }\n  return 0;\n};\nif (cmpVersions(global.version, helper.requiresVersion) < 0) {\n  console.warn(\"Upgrade MagicMirror before installing this module\");\n}","typeGuard":"function meetsVersion(core, required) {\n  return cmpVersions(core, required) >= 0;\n}","tryCatchPattern":null,"preventionTips":["Check a module's requiresVersion (in node_helper.js) before installing.","Keep MagicMirror² core updated (git pull && npm install) regularly.","Pin module versions compatible with your core when running old installs."],"tags":["version-check","compatibility","module-loading"],"backgroundTag":"version-mismatch","analyzedSha":"4b4a59534f7da01e4030e46029fe9dd649a7675e","analyzedAt":"2026-08-31T21:49:42.591Z","schemaVersion":2},"datasetVersion":"2026-08-31T22:30:34.772Z"}