mastra-ai/mastra · error · MastraError
EXPERIMENT_NO_ITEMS
EXPERIMENT_NO_ITEMS
Error message
No items in dataset ${datasetId} at version ${datasetVersion} What it means
After resolving the dataset, runExperiment fetches the items for the dataset's version via getItemsByVersion; if the version has zero items the experiment would be meaningless, so a MastraError with id EXPERIMENT_NO_ITEMS is thrown. This guards against silently 'running' an experiment over an empty item set.
Source
Thrown at packages/core/src/datasets/experiment/index.ts:275
datasetRecord = await datasetsStore.getDatasetById({ id: datasetId, filters: config.filters });
if (!datasetRecord) {
throw new MastraError({
id: 'DATASET_NOT_FOUND',
text: `Dataset not found: ${datasetId}`,
domain: 'STORAGE',
category: 'USER',
});
}
datasetVersion = version ?? datasetRecord.version;
const versionItems = await datasetsStore.getItemsByVersion({
datasetId,
version: datasetVersion,
});
if (versionItems.length === 0) {
throw new MastraError({
id: 'EXPERIMENT_NO_ITEMS',
text: `No items in dataset ${datasetId} at version ${datasetVersion}`,
domain: 'STORAGE',
category: 'USER',
});
}
items = versionItems.map(v => ({
id: v.id,
datasetVersion: v.datasetVersion,
input: v.input,
groundTruth: v.groundTruth,
expectedTrajectory: v.expectedTrajectory as TrajectoryExpectation | undefined,
requestContext: v.requestContext,
metadata: v.metadata,
toolMocks: v.toolMocks,
unmockedToolPolicy: v.unmockedToolPolicy,
scorerIds: v.scorerIds,View on GitHub (pinned to 75dd419e61)
Solutions
- Add items to the dataset version via the datasets store (addItems/upload) before running
- Target the dataset version that actually contains items
- Check getItemsByVersion output to confirm the item count for that version
- If items were purged, restore/re-upload them and re-run
Example fix
// before
await runExperiment({ datasetId: 'ds_123', ... }); // version 2 empty
// after
const items = await datasetsStore.getItemsByVersion({ datasetId: 'ds_123', version: 2 });
if (items.length === 0) await datasetsStore.addItems({ datasetId: 'ds_123', items });
await runExperiment({ datasetId: 'ds_123', ... }); Defensive patterns
Strategy: validation
Validate before calling
const items = await datasetsStore.getItemsByVersion({ datasetId, version });
if (items.length === 0) throw new Error(`Dataset ${datasetId} v${version} has no items`); Try / catch
try {
await runExperiment(config);
} catch (err) {
if (err instanceof MastraError && err.id === 'EXPERIMENT_NO_ITEMS') {
// add items to the dataset version, then retry
} else throw err;
} Prevention
- Upload items immediately after dataset creation and verify the count
- Check item counts per version before scheduling experiment runs
- Confirm which dataset version the run will target
- Alert on datasets whose latest version has zero items
When it happens
Trigger: Running an experiment against a dataset version that contains no items — e.g. a newly created dataset whose items were never added, or a version where all items were deleted.
Common situations: Dataset created but item upload failed or was skipped; pointing at version N before items were pushed; retention job purged items; using the latest version identifier when items live on an earlier version.
Related errors
- EXPERIMENT_NO_ITEMS
- EXPERIMENT_NOT_FOUND
- EXPERIMENT_RESULT_MISSING_EXPERIMENT_ID
- EXPERIMENT_INVALID_TARGET
- EXPERIMENT_TARGET_NOT_FOUND
AI-assisted analysis of mastra-ai/mastra@75dd419e61 (2026-08-30).
Data as JSON: /api/errors/d8b290522707f4e9.
Report an issue: GitHub.