n8n-io/n8n · error · Error
--source langtracer requires --suite <slug>
Error message
--source langtracer requires --suite <slug>
What it means
Thrown in parseArgs when --source langtracer is set but --suite is not provided. The langtracer source pulls test cases from a remote lang-tracer suite over MCP instead of reading JSON files from disk; the suite slug identifies which suite to pull from. Without it, the source has no way to locate test cases.
Source
Thrown at packages/@n8n/instance-ai/evaluations/cli/build-mcp-manifest.ts:234
break;
case '-h':
case '--help':
return { helpRequested: true };
default:
if (arg.startsWith('--')) {
throw new Error(`Unknown flag: ${arg.split('=', 1)[0]} (use --help)`);
}
result.slugs.push(arg);
i += 1;
break;
}
}
if (result.iterations < 1) throw new Error('--iterations must be >= 1');
if (result.concurrency < 1) throw new Error('--concurrency must be >= 1');
if (result.maxAttempts < 1) throw new Error('--max-attempts must be >= 1');
if (result.source === 'langtracer' && !result.suite) {
throw new Error('--source langtracer requires --suite <slug>');
}
mkdirSync(result.outputDir, { recursive: true });
if (!result.manifestPath) result.manifestPath = join(result.outputDir, 'manifest.json');
if (!result.logDir) result.logDir = join(result.outputDir, 'logs');
const base = result.manifestPath.replace(/\.json$/, '');
result.statsPath = `${base}-stats.json`;
mkdirSync(result.logDir, { recursive: true });
return { helpRequested: false, args: result };
}
function readJson(path: string, label: string): unknown {
const content = readFileSync(path, 'utf-8');
try {
return JSON.parse(content);
} catch (error) {
const msg = error instanceof Error ? error.message : String(error);View on GitHub (pinned to 5ac6606e81)
Solutions
- Add --suite <slug> to the command (e.g. --suite baseline)
- If you intend to use on-disk test cases, omit --source langtracer (disk is the default)
- List available suite slugs in the lang-tracer UI or via the REST API before choosing one
Example fix
# before pnpm eval:build-mcp-manifest --source langtracer # after pnpm eval:build-mcp-manifest --source langtracer --suite baseline
Defensive patterns
Strategy: validation
Validate before calling
// Validate source/suite pairing before running the CLI:
const source = 'langtracer';
const suite = undefined;
if (source === 'langtracer' && !suite) {
throw new Error('--source langtracer requires --suite <slug>');
} Prevention
- When using --source langtracer, always pair it with --suite <slug>
- Keep a checklist of required flag pairings for each --source mode
When it happens
Trigger: Running `pnpm eval:build-mcp-manifest --source langtracer` without the `--suite <slug>` flag. The check at line 233 fires after all flags are parsed.
Common situations: Developer switches to the langtracer source but forgets the required --suite flag. Assumes --suite has a default value (it does not). Copies a partial command from documentation.
Related errors
- suite "${args.suite}" not found. Available: ${known || '(non
- --max-attempts must be >= 1
- Missing value for ${flag}
- Invalid integer for ${flag}
- Workflow directory not found: ${workflowDir}
AI-assisted analysis of n8n-io/n8n@5ac6606e81 (2026-08-12).
Data as JSON: /api/errors/2ed29db63755c2a0.
Report an issue: GitHub.