MagicMirrorOrg/MagicMirror · warning

WARNING! Your config for module ${element.module} is using d

Error message

WARNING! Your config for module ${element.module} is using deprecated option(s): ${usedDeprecatedModuleOptions.join(", ")}. Check README and Documentation for more up-to-date ways of getting the same functionality.

What it means

The same deprecation check as for core options, but applied per module: for each entry in config.modules whose module name has a deprecation entry in js/deprecated.js, any of its listed options found in element.config produces this warning identifying the module and the offending option names.

Source

Thrown at js/utils.js:92

 * @param {object} userConfig The user config
 */
const checkDeprecatedOptions = (userConfig) => {
	const deprecated = require(`${global.root_path}/js/deprecated`);

	// check for deprecated core options
	const deprecatedOptions = deprecated.configs;
	const usedDeprecated = deprecatedOptions.filter((option) => userConfig.hasOwnProperty(option));
	if (usedDeprecated.length > 0) {
		Log.warn(`WARNING! Your config is using deprecated option(s): ${usedDeprecated.join(", ")}. Check README and Documentation for more up-to-date ways of getting the same functionality.`);
	}

	// check for deprecated module options
	for (const element of userConfig.modules) {
		if (deprecated[element.module] !== undefined && element.config !== undefined) {
			const deprecatedModuleOptions = deprecated[element.module];
			const usedDeprecatedModuleOptions = deprecatedModuleOptions.filter((option) => element.config.hasOwnProperty(option));
			if (usedDeprecatedModuleOptions.length > 0) {
				Log.warn(`WARNING! Your config for module ${element.module} is using deprecated option(s): ${usedDeprecatedModuleOptions.join(", ")}. Check README and Documentation for more up-to-date ways of getting the same functionality.`);
			}
		}
	}
};

/**
 * Loads the config file. Combines it with the defaults and returns the config
 * @returns {object} an object holding full and redacted config
 */
const loadConfig = () => {
	Log.log("Loading config ...");
	const defaults = require("./defaults");
	if (global.mmTestMode) {
		// if we are running in test mode
		defaults.address = "0.0.0.0";
	}

	// For this check proposed to TestSuite

View on GitHub (pinned to 4b4a59534f)

Solutions

  1. Note the module and deprecated option names in the message.
  2. Check the module's (new) README or the core module documentation for the renamed/replacement options.
  3. Update element.config for that module accordingly and restart.

Example fix

// before
{ module: "calendar", position: "top_left", config: { fetchInterval: 60000 } } // option renamed upstream
// after
{ module: "calendar", position: "top_left", config: { fetchInterval: 60000 } } // with option name per current docs
Defensive patterns

Strategy: validation

Validate before calling

// check module configs against the deprecation list:
const deprecated = require("./js/deprecated");
for (const m of config.modules) {
  if (Array.isArray(deprecated[m.module]) && m.config) {
    const bad = deprecated[m.module].filter((o) => m.config.hasOwnProperty(o));
    if (bad.length) console.error(`Module ${m.module}: deprecated options ${bad}`);
  }
}

Prevention

When it happens

Trigger: A module entry in config.modules sets an option flagged in deprecated.js for that module (e.g. old calendar/newsfeed options renamed upstream), after a core upgrade that deprecated them.

Common situations: Upgrading MagicMirror core while keeping module configs from an older install; copying old module config examples from the forum.

Related errors


AI-assisted analysis of MagicMirrorOrg/MagicMirror@4b4a59534f (2026-08-31). Data as JSON: /api/errors/3a488068fbe913f5. Report an issue: GitHub.