eyaltoledano/claude-task-master · warning

Warning: Configuration file not found at derived root (${roo

Error message

Warning: Configuration file not found at derived root (${rootToUse}). Using defaults.

What it means

Similar to the explicit-root warning, but for a derived (auto-detected) root: if the derived directory looks like a Task Master project (contains a .taskmaster directory or legacy .taskmasterconfig marker) but no actual config file is present, Task Master warns it is falling back to defaults. It only fires when project markers exist, avoiding noise for unrelated directories.

Source

Thrown at scripts/modules/config-manager.js:249

			if (explicitRoot) {
				// Warn about explicit root not having config
				console.warn(
					chalk.yellow(
						`Warning: Configuration file not found at provided project root (${explicitRoot}). Using default configuration. Run 'task-master models --setup' to configure.`
					)
				);
			} else {
				// Don't warn about missing config during initialization
				// Only warn if this looks like an existing project (has .taskmaster dir or legacy config marker)
				const hasTaskmasterDir = fs.existsSync(
					path.join(rootToUse, TASKMASTER_DIR)
				);
				const hasLegacyMarker = fs.existsSync(
					path.join(rootToUse, LEGACY_CONFIG_FILE)
				);

				if (hasTaskmasterDir || hasLegacyMarker) {
					console.warn(
						chalk.yellow(
							`Warning: Configuration file not found at derived root (${rootToUse}). Using defaults.`
						)
					);
				}
			}
		}
		// Keep config as defaults
		config = { ...defaults };
		configSource = `defaults (no config file found at ${rootToUse})`;
	}

	return config;
}

/**
 * Gets the current configuration, loading it if necessary.
 * Handles MCP initialization context gracefully.

View on GitHub (pinned to c0c98d367c)

Solutions

  1. Create the config with 'task-master models --setup' in that directory.
  2. Restore the missing .taskmaster/config.json (e.g. remove it from .gitignore or recover from git history).
  3. Complete a migration from the legacy config: copy/rename legacy .taskmasterconfig content into .taskmaster/config.json.

Example fix

// before
.taskmaster/            # exists, but no config.json inside
// after
.taskmaster/config.json # created via task-master models --setup
Defensive patterns

Strategy: validation

Validate before calling

const fs = require('fs');
const path = require('path');
if (fs.existsSync('.taskmaster') && !fs.existsSync(path.join('.taskmaster', 'config.json'))) {
  console.error('Task Master dir exists but config.json is missing — run task-master models --setup');
}

Prevention

When it happens

Trigger: findProjectRoot()/root resolution lands on a directory containing .taskmaster/ or a legacy config marker, but .taskmaster/config.json is missing during _loadAndValidateConfig (no explicit root provided, warnings not suppressed, storageType !== 'api').

Common situations: Migration created .taskmaster/ but config.json was deleted or gitignored; a partial 'task-master init'; upgrading from the legacy single-file config where the marker file remains but the new config was never created.

Related errors


AI-assisted analysis of eyaltoledano/claude-task-master@c0c98d367c (2026-08-29). Data as JSON: /api/errors/456e9094867f16d1. Report an issue: GitHub.