mastra-ai/mastra · error · MastraError
OBSERVABILITY_STORAGE_LIST_FEEDBACK_NOT_IMPLEMENTED
OBSERVABILITY_STORAGE_LIST_FEEDBACK_NOT_IMPLEMENTED
Error message
This storage provider does not support listing feedback
What it means
listFeedback retrieves feedback records with filtering and is an optional capability; the observability storage base throws by default. The configured adapter has no feedback read/list implementation.
Source
Thrown at packages/core/src/storage/domains/observability/base.ts:681
}
/**
* Creates multiple feedback observations in a single batch.
*/
async batchCreateFeedback(_args: BatchCreateFeedbackArgs): Promise<void> {
throw new MastraError({
id: 'OBSERVABILITY_STORAGE_BATCH_CREATE_FEEDBACK_NOT_IMPLEMENTED',
domain: ErrorDomain.MASTRA_OBSERVABILITY,
category: ErrorCategory.SYSTEM,
text: 'This storage provider does not support batch creating feedback',
});
}
/**
* Retrieves a list of feedback with optional filtering.
*/
async listFeedback(_args: ListFeedbackArgs): Promise<ListFeedbackResponse> {
throw new MastraError({
id: 'OBSERVABILITY_STORAGE_LIST_FEEDBACK_NOT_IMPLEMENTED',
domain: ErrorDomain.MASTRA_OBSERVABILITY,
category: ErrorCategory.SYSTEM,
text: 'This storage provider does not support listing feedback',
});
}
async getFeedbackAggregate(_args: GetFeedbackAggregateArgs): Promise<GetFeedbackAggregateResponse> {
throw new MastraError({
id: 'OBSERVABILITY_STORAGE_GET_FEEDBACK_AGGREGATE_NOT_IMPLEMENTED',
domain: ErrorDomain.MASTRA_OBSERVABILITY,
category: ErrorCategory.SYSTEM,
text: 'This storage provider does not support feedback aggregation',
});
}
async getFeedbackBreakdown(_args: GetFeedbackBreakdownArgs): Promise<GetFeedbackBreakdownResponse> {
throw new MastraError({View on GitHub (pinned to 75dd419e61)
Solutions
- Switch to a provider that implements feedback listing (libsql, postgres, upstash).
- Implement listFeedback in your custom adapter with filtered query support.
- Catch the error and return an empty response / hide feedback UI.
- Check adapter package version parity with @mastra/core.
Example fix
// before
const feedback = await storage.listFeedback({ scope }); // throws
// after
try {
const feedback = await storage.listFeedback({ scope });
} catch (e) {
if (e instanceof MastraError && e.id === 'OBSERVABILITY_STORAGE_LIST_FEEDBACK_NOT_IMPLEMENTED') {
return { feedback: [], total: 0 };
}
throw e;
} Defensive patterns
Strategy: try-catch
Validate before calling
const supportsListFeedback = storage.constructor.prototype.hasOwnProperty('listFeedback');
if (!supportsListFeedback) return { feedback: [], total: 0 }; Type guard
function canListFeedback(s: any): s is { listFeedback: (a: any) => Promise<any> } {
return typeof s?.listFeedback === 'function' && s.constructor.prototype.hasOwnProperty('listFeedback');
} Try / catch
try {
return await storage.listFeedback(args);
} catch (e) {
if (e instanceof MastraError && e.id === 'OBSERVABILITY_STORAGE_LIST_FEEDBACK_NOT_IMPLEMENTED') {
return { feedback: [], total: 0 };
}
throw e;
} Prevention
- Verify feedback read support before building review UIs
- Keep storage adapter versions aligned with core
- Hide feedback sections when capability probe fails
- Add interface-conformance tests for custom adapters
When it happens
Trigger: Calling storage.listFeedback({ scope, filters, pagination }) on an adapter extending the base without overriding it, or from feedback review UI/tooling pointed at a provider without feedback support.
Common situations: Custom/minimal storage adapters; feedback dashboards; older storage packages missing the feedback API.
Related errors
- OBSERVABILITY_STORAGE_CREATE_FEEDBACK_NOT_IMPLEMENTED
- OBSERVABILITY_STORAGE_BATCH_CREATE_FEEDBACK_NOT_IMPLEMENTED
- OBSERVABILITY_STORAGE_GET_FEEDBACK_AGGREGATE_NOT_IMPLEMENTED
- OBSERVABILITY_STORAGE_GET_FEEDBACK_BREAKDOWN_NOT_IMPLEMENTED
- OBSERVABILITY_STORAGE_GET_FEEDBACK_TIME_SERIES_NOT_IMPLEMENTED
AI-assisted analysis of mastra-ai/mastra@75dd419e61 (2026-08-30).
Data as JSON: /api/errors/9e56d9a9056a4fa1.
Report an issue: GitHub.