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

  1. Switch to a provider that implements feedback listing (libsql, postgres, upstash).
  2. Implement listFeedback in your custom adapter with filtered query support.
  3. Catch the error and return an empty response / hide feedback UI.
  4. 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

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


AI-assisted analysis of mastra-ai/mastra@75dd419e61 (2026-08-30). Data as JSON: /api/errors/9e56d9a9056a4fa1. Report an issue: GitHub.