{"record":{"id":"3f4d4d2f4573210c","repo":"MagicMirrorOrg/MagicMirror","slug":"version-is-incorrect-skip-module-name","errorCode":null,"errorMessage":"Version is incorrect. Skip module: '${name}'","messagePattern":"Version is incorrect\\. Skip module: '(.+?)'","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"js/module.js","lineNumber":501,"sourceCode":"\t\t\t\tsuper();\n\t\t\t\tObject.assign(this, clonedDefinition);\n\t\t\t\tif (typeof this.init === \"function\") {\n\t\t\t\t\tthis.init();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}[className];\n\n\treturn new SubClass();\n};\n\nModule.register = function (name, moduleDefinition) {\n\tif (moduleDefinition.requiresVersion) {\n\t\tLog.log(`Check MagicMirror² version for module '${name}' - Minimum version:  ${moduleDefinition.requiresVersion} - Current version: ${window.mmVersion}`);\n\t\tif (cmpVersions(window.mmVersion, moduleDefinition.requiresVersion) >= 0) {\n\t\t\tLog.log(\"Version is ok!\");\n\t\t} else {\n\t\t\tLog.warn(`Version is incorrect. Skip module: '${name}'`);\n\t\t\treturn;\n\t\t}\n\t}\n\tLog.log(`Module registered: ${name}`);\n\tModule.definitions[name] = moduleDefinition;\n};\n\n/**\n * Compare two semantic version numbers and return the difference.\n * @param {string} a Version number a.\n * @param {string} b Version number b.\n * @returns {number} A positive number if a is larger than b, a negative\n * number if a is smaller and 0 if they are the same\n */\nexport function cmpVersions (a, b) {\n\tconst regExStrip0 = /(\\.0+)+$/;\n\tconst segmentsA = a.replace(regExStrip0, \"\").split(\".\");\n\tconst segmentsB = b.replace(regExStrip0, \"\").split(\".\");","sourceCodeStart":483,"sourceCodeEnd":519,"githubUrl":"https://github.com/MagicMirrorOrg/MagicMirror/blob/4b4a59534f7da01e4030e46029fe9dd649a7675e/js/module.js#L483-L519","documentation":"During Module.register, a module can declare requiresVersion. If the running MagicMirror version (window.mmVersion) compares lower than that minimum (cmpVersions < 0), registration is aborted with this warning and the module definition is never stored, so the module will not load.","triggerScenarios":"Installing a module whose requiresVersion (e.g. \"2.15.0\") is newer than the running MagicMirror version (e.g. 2.13.0); Module.register is called during bootstrap and returns early.","commonSituations":"Cloning a module's latest master branch into an outdated MagicMirror install; upgrading a module without upgrading MagicMirror core; running a distribution/fork that lags upstream.","solutions":["Upgrade MagicMirror to at least the version the module requires (git pull / npm update in the MagicMirror directory, or update the Docker image).","If you must stay on the old core, checkout an older tag/branch of the module compatible with your version.","Check window.mmVersion in the browser console to confirm the running version before debugging further."],"exampleFix":"// shell, before (old core + bleeding-edge module)\n// after:\ngit fetch && git checkout release/current  # or the latest version tag\nnpm install\n# module now meets requiresVersion","handlingStrategy":"validation","validationCode":"// run before installing/updating a module:\necho \"Running: $(grep version package.json | head -1)\"\n# compare with the module's requiresVersion in its js file\ngrep -n requiresVersion modules/<name>/<name>.js","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Check the module's requiresVersion before installing","Keep MagicMirror core reasonably up to date","Pin module versions/branches known to work with your core version","After core upgrades, update all custom modules"],"tags":["version","module-registration","compatibility"],"backgroundTag":"minimum-version-check-failed","analyzedSha":"4b4a59534f7da01e4030e46029fe9dd649a7675e","analyzedAt":"2026-08-31T21:49:42.591Z","schemaVersion":2},"datasetVersion":"2026-08-31T22:30:34.772Z"}