n8n-io/n8n · error · Error
No examples matched filters (${filterSummary}) in dataset "$
Error message
No examples matched filters (${filterSummary}) in dataset "${datasetName}" (scanned ${scanned}) What it means
After loading a local dataset and applying filters (by `notionId`, `technique`, `doSearch`, `dontSearch`), the harness found zero matching examples even though the dataset itself is non-empty. The message reports the active filter summary and how many examples were scanned, so the user can tell whether the filter is too narrow or simply wrong.
Source
Thrown at packages/@n8n/ai-workflow-builder.ee/evaluations/harness/runner.ts:390
for await (const example of lsClient.listExamples(listArgs)) {
scanned++;
if (filters && !exampleMatchesFilters(example, filters)) continue;
matches.push(example);
if (maxExamples && matches.length >= maxExamples) break;
}
if (filters && matches.length === 0) {
const filterSummary = [
filters.notionId ? `id:${filters.notionId}` : undefined,
filters.technique ? `technique:${filters.technique}` : undefined,
filters.doSearch ? `do:${filters.doSearch}` : undefined,
filters.dontSearch ? `dont:${filters.dontSearch}` : undefined,
]
.filter((v): v is string => v !== undefined)
.join(', ');
throw new Error(
`No examples matched filters (${filterSummary}) in dataset "${datasetName}" (scanned ${scanned})`,
);
}
if (!filters && maxExamples && matches.length === 0) {
throw new Error(`No examples found in dataset "${datasetName}"`);
}
return matches;
}
async function resolveLangsmithData(params: {
dataset: string;
langsmithOptions: LangsmithRunConfig['langsmithOptions'];
lsClient: {
readDataset: (args: { datasetName: string }) => Promise<{ id: string }>;
listExamples: (args: { datasetId: string; limit?: number }) => AsyncIterable<Example>;
};View on GitHub (pinned to 5ac6606e81)
Solutions
- Relax the filter: drop the most restrictive clause and re-run to find which filter is excluding everything.
- Verify the exact stored values (case, punctuation) in the dataset and align your filter flags to them.
- Run once with no filters to confirm the dataset is non-empty and to see the available technique/id values.
Example fix
// before run --dataset mine --filter-technique chains --filter-do-search 'slack' // after (no examples tagged 'chains'; drop it) run --dataset mine --filter-do-search 'slack'
Defensive patterns
Strategy: validation
Validate before calling
// before running, confirm the filter will match at least one example
function previewFilterMatch(dataset: Example[], filters: Filters): number {
return dataset.filter((e) => matchesFilters(e, filters)).length;
}
const count = previewFilterMatch(localDataset, filters);
if (count === 0) throw new Error(`filter matches 0 of ${localDataset.length} examples; relax filters`); Prevention
- Run the dataset once with no filters to learn the available technique/id values, then build filters from those.
- Treat filters as case/whitespace-sensitive and document that.
- Add a unit test against a fixture dataset that asserts your default filter set matches > 0.
When it happens
Trigger: Calling `resolveAndEnrichLangsmithData` (or the local-dataset equivalent) with a filter combination that no example satisfies — e.g. `--filter-technique chains` when no example is tagged `chains`, or a `--do-search` substring that matches nothing. `matches.length === 0` with `filters` set.
Common situations: Filter values copied from another dataset; case/whitespace mismatch (the comparison is exact substring on stored fields); a technique/id renamed in the dataset; combining multiple filters so nothing passes all of them.
Related errors
- No examples found in dataset "${datasetName}"
- LangSmith mode requires `--dataset` and does not support `--
- No valid checks after filtering. Requested: ${options.checks
- No prompt found in inputs - expected "prompt" string or "mes
- LangSmith mode requires dataset to be a dataset name string
AI-assisted analysis of n8n-io/n8n@5ac6606e81 (2026-08-12).
Data as JSON: /api/errors/13a7a55134aa019a.
Report an issue: GitHub.