MagicMirrorOrg/MagicMirror · warning
No module name found for this configuration: ${JSON.stringif
Error message
No module name found for this configuration:
${JSON.stringify(module, null, 2)} What it means
During startup, App iterates over config.modules and reads module.module to know which module to load. If an entry has no module name property (undefined/empty), it cannot be registered or loaded, so this warning is logged and the entry is skipped.
Source
Thrown at js/app.js:227
}
// get the used module positions
Utils.getModulePositions();
let modules = [];
for (const module of config.modules) {
if (module.disabled) continue;
if (module.module) {
if (Utils.moduleHasValidPosition(module.position) || typeof (module.position) === "undefined") {
// Only add this module to be loaded if it is not a duplicate (repeated instance of the same module)
if (!modules.includes(module.module)) {
modules.push(module.module);
}
} else {
Log.warn("Invalid module position found for this configuration:" + `\n${JSON.stringify(module, null, 2)}`);
}
} else {
Log.warn("No module name found for this configuration:" + `\n${JSON.stringify(module, null, 2)}`);
}
}
setGlobalDispatcher(new Agent({ connect: { timeout: fetch_timeout } }));
await loadModules(modules);
httpServer = new Server(configObj);
const { app, io } = await httpServer.open();
Log.log("Server started ...");
const nodePromises = [];
for (let nodeHelper of nodeHelpers) {
nodeHelper.setExpressApp(app);
nodeHelper.setSocketIO(io);
try {
nodePromises.push(nodeHelper.start());View on GitHub (pinned to 4b4a59534f)
Solutions
- Add the missing module property to the entry: { module: "modulename", position: "..." }.
- Remove the empty/invalid entry from the modules array entirely.
- Run a JSON/JS syntax sanity check on config.js (node -e "require('./config')" style check) to spot malformed entries.
Example fix
// before (config.js)
{ position: "top_right" }
// after
{ module: "calendar", position: "top_right" } Defensive patterns
Strategy: validation
Validate before calling
config.modules.forEach((m, i) => {
if (typeof m !== "object" || m === null || typeof m.module !== "string" || !m.module.trim()) {
throw new Error(`config.modules[${i}] is missing a valid 'module' property`);
}
}); Type guard
function isModuleEntry(m) {
return typeof m === "object" && m !== null && typeof m.module === "string" && m.module.length > 0;
} Try / catch
null
Prevention
- Validate config.js after every manual edit (node --check or a small validation script).
- Fill in module name placeholders immediately when pasting snippets.
- Watch for trailing empty objects left behind when deleting modules.
When it happens
Trigger: A config.js modules array contains an entry missing the required 'module' property — e.g. only a position/config object, a trailing empty object {}, or a copy/paste that dropped the module line.
Common situations: Hand-edited config.js where the module: "..." line was accidentally deleted; JSON config generators or scripts emitting empty entries; pasting a module snippet and forgetting to fill in the module name placeholder.
Related errors
- Invalid module position found for this configuration: ${JSON
- Latitude and longitude are required
- Invalid API response
- siteCode and provCode are required
- Invalid weather data
AI-assisted analysis of MagicMirrorOrg/MagicMirror@4b4a59534f (2026-08-31).
Data as JSON: /api/errors/5816a025716378de.
Report an issue: GitHub.