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

  1. Add --suite <slug> to the command (e.g. --suite baseline)
  2. If you intend to use on-disk test cases, omit --source langtracer (disk is the default)
  3. 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 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


AI-assisted analysis of n8n-io/n8n@5ac6606e81 (2026-08-12). Data as JSON: /api/errors/2ed29db63755c2a0. Report an issue: GitHub.