eyaltoledano/claude-task-master · warning
Warning: Configuration file not found at provided project ro
Error message
Warning: Configuration file not found at provided project root (${explicitRoot}). Using default configuration. Run 'task-master models --setup' to configure. What it means
When loading configuration, Task Master resolves a project root. If an explicit project root was supplied but no config file (config.json or legacy .taskmasterconfig) exists there, it warns that defaults are being used and points the user at 'task-master models --setup'. The warning is suppressed when config warnings are suppressed or storageType is 'api' (remote storage needs no local config).
Source
Thrown at scripts/modules/config-manager.js:233
console.error(
chalk.red(
`Error reading or parsing ${configPath}: ${error.message}. Using default configuration.`
)
);
config = { ...defaults }; // Reset to defaults on parse error
configSource = `defaults (parse error at ${configPath})`;
}
} else {
// Config file doesn't exist at the determined rootToUse.
// Skip warnings if:
// 1. Global suppress flag is set (during API mode detection)
// 2. storageType is explicitly 'api' (remote storage mode - no local config expected)
const shouldWarn = !isConfigWarningSuppressed() && storageType !== 'api';
if (shouldWarn) {
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.`View on GitHub (pinned to c0c98d367c)
Solutions
- Run 'task-master models --setup' (or 'task-master init') in the intended project root to create the config.
- Verify the root path passed via --project-root / ConfigManager options actually contains .taskmaster/config.json.
- If using remote API storage intentionally, set storageType to 'api' or suppress the warning to stop it appearing.
Example fix
// before exec: `task-master list --project-root ./wrong-dir` // after exec: `task-master list --project-root /home/me/my-app`
Defensive patterns
Strategy: validation
Validate before calling
const fs = require('fs');
const path = require('path');
function hasConfig(root) {
return fs.existsSync(path.join(root, '.taskmaster', 'config.json')) ||
fs.existsSync(path.join(root, '.taskmasterconfig'));
}
if (!hasConfig(explicitRoot)) {
console.error(`No config at ${explicitRoot}; run task-master models --setup first`);
} Try / catch
try {
const tm = new ConfigManager({ projectRoot: explicitRoot });
} catch (e) {
// check for missing-config warning and prompt user to run setup
} Prevention
- Initialize every repo with 'task-master init' before running commands.
- Double-check --project-root values in scripts/CI for typos.
- Use a wrapper that asserts .taskmaster/config.json exists before invoking task-master.
When it happens
Trigger: Calling new ConfigManager(...)/newConfig with an explicitRoot option pointing to a directory that lacks .taskmaster/config.json (and legacy config), while storageType is not 'api' and warnings are not suppressed.
Common situations: Passing --project-root pointing at the wrong folder; running in a fresh checkout before initializing; CI scripts referencing a root that was never set up; running from a monorepo subdirectory whose root has no .taskmaster directory.
Related errors
- Warning: Configuration file not found at derived root (${roo
- Warning: Could not find project root to check mcp.json.
- projectRoot is required in args to resolve project paths
- CONFIG_ERROR
- MISSING_CONFIGURATION
AI-assisted analysis of eyaltoledano/claude-task-master@c0c98d367c (2026-08-29).
Data as JSON: /api/errors/ccefe8a3bf180b2d.
Report an issue: GitHub.