mastra-ai/mastra · error · MastraError
OBSERVABILITY_STORAGE_BATCH_CREATE_SCORES_NOT_IMPLEMENTED
OBSERVABILITY_STORAGE_BATCH_CREATE_SCORES_NOT_IMPLEMENTED
Error message
This storage provider does not support batch creating scores
What it means
MastraError OBSERVABILITY_STORAGE_BATCH_CREATE_SCORES_NOT_IMPLEMENTED. batchCreateScores in the observability storage base class always throws, since batch score writing is an optional backend capability. Hitting it means the provider cannot accept bulk score observations.
Solutions
- Use a storage provider implementing batchCreateScores
- Override batchCreateScores in your storage class to insert scores in bulk (or loop over createScore)
- Catch the error and fall back to per-record createScore calls or buffer scores elsewhere
Example fix
// before
await storage.batchCreateScores({ scores });
// after
try {
await storage.batchCreateScores({ scores });
} catch (e) {
if (e.id === 'OBSERVABILITY_STORAGE_BATCH_CREATE_SCORES_NOT_IMPLEMENTED') {
for (const s of scores) await storage.createScore(s);
return;
}
throw e;
} Defensive patterns
Strategy: fallback
Validate before calling
async function supportsBatchScores(storage) {
try { await storage.batchCreateScores({ scores: [] }); return true; }
catch (e) { return e?.id !== 'OBSERVABILITY_STORAGE_BATCH_CREATE_SCORES_NOT_IMPLEMENTED'; }
} Type guard
function isNotImplementedError(e: unknown): e is MastraError {
return e instanceof MastraError && e.id === 'OBSERVABILITY_STORAGE_BATCH_CREATE_SCORES_NOT_IMPLEMENTED';
} Try / catch
try {
await storage.batchCreateScores({ scores });
} catch (e) {
if (isNotImplementedError(e)) {
for (const s of scores) await storage.createScore(s);
return;
}
throw e;
} Prevention
- Confirm batch score support in your provider before bulk evaluation runs
- Implement a batch-to-single fallback path in your scoring pipeline
- Keep custom adapters implementing both createScore and batchCreateScores
- Buffer scores durably so a not-implemented error does not lose evaluation data
When it happens
Trigger: Calling batchCreateScores(args) on a storage class relying on the base default; scoring pipelines that flush scores in bulk to an unsupported backend.
Common situations: Bulk evaluation runs (eval datasets) against storage adapters without score support; custom adapters implementing createScore but not the batch variant; batched telemetry exporters pointed at minimal storage.
Related errors
- OBSERVABILITY_STORAGE_BATCH_CREATE_FEEDBACK_NOT_IMPLEMENTED
- OBSERVABILITY_STORAGE_BATCH_CREATE_LOGS_NOT_IMPLEMENTED
- OBSERVABILITY_STORAGE_BATCH_CREATE_METRICS_NOT_IMPLEMENTED
- OBSERVABILITY_STORAGE_BATCH_UPDATE_SPANS_NOT_IMPLEMENTED
- OBSERVABILITY_STORAGE_CREATE_SCORE_NOT_IMPLEMENTED
AI-assisted analysis of mastra-ai/mastra@75dd419e61 (2026-08-30).
Data as JSON: /api/errors/8052d463ae52536e.
Report an issue: GitHub.
Appendix: source
Thrown at packages/core/src/storage/domains/observability/base.ts:581
// ============================================================================
/**
* Creates a single score record.
*/
async createScore(_args: CreateScoreArgs): Promise<void> {
throw new MastraError({
id: 'OBSERVABILITY_STORAGE_CREATE_SCORE_NOT_IMPLEMENTED',
domain: ErrorDomain.MASTRA_OBSERVABILITY,
category: ErrorCategory.SYSTEM,
text: 'This storage provider does not support creating scores',
});
}
/**
* Creates multiple score observations in a single batch.
*/
async batchCreateScores(_args: BatchCreateScoresArgs): Promise<void> {
throw new MastraError({
id: 'OBSERVABILITY_STORAGE_BATCH_CREATE_SCORES_NOT_IMPLEMENTED',
domain: ErrorDomain.MASTRA_OBSERVABILITY,
category: ErrorCategory.SYSTEM,
text: 'This storage provider does not support batch creating scores',
});
}
/**
* Retrieves a list of scores with optional filtering.
*/
async listScores(_args: ListScoresArgs): Promise<ListScoresResponse> {
throw new MastraError({
id: 'OBSERVABILITY_STORAGE_LIST_SCORES_NOT_IMPLEMENTED',
domain: ErrorDomain.MASTRA_OBSERVABILITY,
category: ErrorCategory.SYSTEM,
text: 'This storage provider does not support listing scores',
});
}View on GitHub (pinned to 75dd419e61)