mastra-ai/mastra · error · Error
Storage not configured. Configure storage in Mastra instance
Error message
Storage not configured. Configure storage in Mastra instance.
What it means
compareExperiments compares score data of two experiments, which requires a configured storage backend on the Mastra instance. If mastra.getStorage() returns undefined, no storage was configured and comparison cannot proceed.
Source
Thrown at packages/core/src/datasets/experiment/analytics/compare.ts:62
* thresholds: {
* 'accuracy': { value: 0.05, direction: 'higher-is-better' },
* 'latency': { value: 100, direction: 'lower-is-better' },
* },
* });
*
* if (result.hasRegression) {
* console.log('Quality regression detected!');
* }
* ```
*/
export async function compareExperiments(mastra: Mastra, config: CompareExperimentsConfig): Promise<ComparisonResult> {
const { experimentIdA, experimentIdB, thresholds = {} } = config;
const warnings: string[] = [];
// 1. Get storage
const storage = mastra.getStorage();
if (!storage) {
throw new Error('Storage not configured. Configure storage in Mastra instance.');
}
const experimentsStore = await storage.getStore('experiments');
const scoresStore = await storage.getStore('scores');
if (!experimentsStore) {
throw new Error('ExperimentsStorage not configured.');
}
if (!scoresStore) {
throw new Error('ScoresStorage not configured.');
}
// 2. Load both experiments
const [experimentA, experimentB] = await Promise.all([
experimentsStore.getExperimentById({ id: experimentIdA }),
experimentsStore.getExperimentById({ id: experimentIdB }),
]);
View on GitHub (pinned to 75dd419e61)
Solutions
- Configure storage on the Mastra instance, e.g. new Mastra({ storage: new MastraStorage(...) })
- Check mastra.getStorage() before calling compareExperiments and surface a clear config error
- Verify the storage dependency/package is installed and imported correctly
- Ensure env vars controlling storage config are set in the runtime environment
Example fix
// before
const mastra = new Mastra({ agents: {...} }); // no storage
compareExperiments({ mastra, ... });
// after
const mastra = new Mastra({ agents: {...}, storage: new LibSQLStore({ url: process.env.DB_URL }) }); Defensive patterns
Strategy: validation
Validate before calling
const storage = mastra.getStorage();
if (!storage) throw new Error('Configure storage on the Mastra instance before comparing experiments'); Type guard
function hasStorage(mastra) { return typeof mastra.getStorage === 'function' && mastra.getStorage() != null; } Try / catch
try {
const report = await compareExperiments({ mastra, config });
} catch (e) {
if (e instanceof Error && /Storage not configured/i.test(e.message)) {
// reconfigure Mastra with a storage backend and retry
} else throw e;
} Prevention
- Always pass storage when constructing Mastra if you use datasets/experiments
- Assert storage presence once at app startup, not at point of use
- Keep storage config env-driven and validated on boot
When it happens
Trigger: Calling compareExperiments(config) with a Mastra instance constructed without a storage option, or before storage is attached.
Common situations: Forgetting to pass storage in new Mastra({...}); running analytics in a test/dev environment with in-memory-only setup; storage config gated behind env vars that are unset in the deployment.
Understand the failure class
Background: "environment variable is not set" and "Missing keys in environment" errors: what missing required env var messages mean and how to fix them — this error's family across 28 libraries.
Related errors
- ExperimentsStorage not configured.
- ScoresStorage not configured.
- EXPERIMENTS_STORAGE_NOT_CONFIGURED
- Storage not configured
- Experiments storage not available
AI-assisted analysis of mastra-ai/mastra@75dd419e61 (2026-08-30).
Data as JSON: /api/errors/444b7e4c68918c28.
Report an issue: GitHub.