n8n-io/n8n · error · Error
Cannot combine `--langsmith` with `--backend local`
Error message
Cannot combine `--langsmith` with `--backend local`
What it means
Mutually-exclusive-options error in parseEvaluationArgs. It fires when --langsmith is set while --backend was explicitly given as local: the Langsmith flag implies backend langsmith, so an explicit local backend contradicts it. The check distinguishes explicit backend flags from defaults via seenKeys, so implicit defaults do not trigger it.
Solutions
- Drop --langsmith to run against the local backend, or drop/change --backend to use LangSmith.
- Omit --backend entirely; passing --langsmith sets backend to langsmith automatically.
- Explicitly passing --backend local together with --langsmith is the only rejected combination.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at packages/@n8n/ai-workflow-builder.ee/evaluations/cli/argument-parser.ts:519 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of n8n-io/n8n@5ac6606e81 (2026-08-12).
Data as JSON: /api/errors/6d1564d30d0d49ef.
Report an issue: GitHub.
Appendix: source
Thrown at packages/@n8n/ai-workflow-builder.ee/evaluations/cli/argument-parser.ts:519
if (args.technique && !filters.technique) filters.technique = args.technique;
const hasAny = Object.values(filters).some((v) => typeof v === 'string' && v.length > 0);
return hasAny ? filters : undefined;
}
export function parseEvaluationArgs(argv: string[] = process.argv.slice(2)): EvaluationArgs {
// Check for help flag before parsing
if (argv.includes('--help') || argv.includes('-h')) {
printHelp();
process.exit(0);
}
const { values, seenKeys } = parseCli(argv);
if (values.langsmith === true) {
const backendWasExplicit = seenKeys.has('backend');
if (backendWasExplicit && values.backend !== 'langsmith') {
throw new Error('Cannot combine `--langsmith` with `--backend local`');
}
values.backend = 'langsmith';
}
const parsed = cliSchema.parse(values);
const featureFlags = parseFeatureFlags({
suite: parsed.suite,
});
const filters = parseFilters({
filter: parsed.filter,
notionId: parsed.notionId,
technique: parsed.technique,
});
if (parsed.suite !== 'pairwise' && (filters?.doSearch || filters?.dontSearch)) {
throw new Error(View on GitHub (pinned to 5ac6606e81)