{"record":{"id":"a02f78ef08838f5a","repo":"MagicMirrorOrg/MagicMirror","slug":"known-positions-are-positionlist-join","errorCode":null,"errorMessage":"Known positions are: ${positionList.join(\", \")}","messagePattern":"Known positions are: (.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"info","filePath":"js/utils.js","lineNumber":277,"sourceCode":"\t\t\tthrow new ConfigError(\"\");\n\t\t}\n\n\t\t// `module` (the module name) is required and must be a string\n\t\tif (typeof mod.module !== \"string\") {\n\t\t\tLog.error(`This module configuration contains errors:\\n${JSON.stringify(mod, null, 2)}\\nmodule: must be a string`);\n\t\t\tthrow new ConfigError(\"\");\n\t\t}\n\n\t\t// `position` is optional, but must be a string when provided\n\t\tif (mod.position !== undefined && typeof mod.position !== \"string\") {\n\t\t\tLog.error(`This module configuration contains errors:\\n${JSON.stringify(mod, null, 2)}\\nposition: must be a string`);\n\t\t\tthrow new ConfigError(\"\");\n\t\t}\n\n\t\t// `position` is optional, but when set it must match a known region\n\t\tif (mod.position && !positionList.includes(mod.position)) {\n\t\t\tLog.warn(`Module ${index} (\"${mod.module}\") uses unknown position: \"${mod.position}\"`);\n\t\t\tLog.warn(`Known positions are: ${positionList.join(\", \")}`);\n\t\t}\n\t}\n\n\tLog.info(styleText(\"green\", \"Your modules structure configuration doesn't contain errors :)\"));\n};\n\nmodule.exports = { loadConfig, getModulePositions, moduleHasValidPosition, getAvailableModulePositions, checkConfigFile, ConfigError };\n","sourceCodeStart":259,"sourceCodeEnd":285,"githubUrl":"https://github.com/MagicMirrorOrg/MagicMirror/blob/4b4a59534f7da01e4030e46029fe9dd649a7675e/js/utils.js#L259-L285","documentation":"This is the companion line to the unknown-position warning: validateModulePositions prints the full list of valid region names so the user can pick a correct one. It fires at the same time as error 77, once per invalid position, not as a separate fault.","triggerScenarios":"Same as error 77 — a module config contains a position string not present in positionList; this line enumerates positionList.","commonSituations":"Users reading logs see this line and need to map their intended layout location to one of the enumerated MagicMirror regions.","solutions":["Pick a value verbatim from the list printed in this warning and fix the module's position in config.js.","Refer to the MagicMirror documentation on regions for visual placement of each region.","Run `npm run config:check` after fixing to confirm no more warnings."],"exampleFix":"// log says: Known positions are: top_bar, top_left, ... , fullscreen_below\n// before\nposition: \"top\"\n// after\nposition: \"top_center\"","handlingStrategy":"validation","validationCode":"// reuse the same position list as core to pre-validate:\nconst positionList = require(\"./js/module_positions\") || [/* valid regions */];\nconsole.log(\"Known positions:\", positionList.join(\", \"));\n// fix config.modules[].position to one of these","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Read the 'Known positions are:' line fully before editing","Pick values verbatim from the enumerated list","Verify visually after restart that the module appears in the expected region","Consult the MagicMirror regions documentation"],"tags":["config","positions","diagnostic"],"backgroundTag":"invalid-region-position","analyzedSha":"4b4a59534f7da01e4030e46029fe9dd649a7675e","analyzedAt":"2026-08-31T21:49:42.591Z","schemaVersion":2},"datasetVersion":"2026-08-31T22:30:34.772Z"}