mastra-ai/mastra · error · MastraError

OBSERVABILITY_STORAGE_GET_FEEDBACK_TIME_SERIES_NOT_IMPLEMENTED

OBSERVABILITY_STORAGE_GET_FEEDBACK_TIME_SERIES_NOT_IMPLEMENTED

Error message

This storage provider does not support feedback time series

What it means

Thrown by the base MastraObservabilityStorage class when getFeedbackTimeSeries() is called on a provider that has not overridden it. Time-series aggregation of feedback over time buckets is an optional storage capability, and the base class default is to fail fast with this error.

Source

Thrown at packages/core/src/storage/domains/observability/base.ts:708

    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({
      id: 'OBSERVABILITY_STORAGE_GET_FEEDBACK_BREAKDOWN_NOT_IMPLEMENTED',
      domain: ErrorDomain.MASTRA_OBSERVABILITY,
      category: ErrorCategory.SYSTEM,
      text: 'This storage provider does not support feedback breakdown',
    });
  }

  async getFeedbackTimeSeries(_args: GetFeedbackTimeSeriesArgs): Promise<GetFeedbackTimeSeriesResponse> {
    throw new MastraError({
      id: 'OBSERVABILITY_STORAGE_GET_FEEDBACK_TIME_SERIES_NOT_IMPLEMENTED',
      domain: ErrorDomain.MASTRA_OBSERVABILITY,
      category: ErrorCategory.SYSTEM,
      text: 'This storage provider does not support feedback time series',
    });
  }

  async getFeedbackPercentiles(_args: GetFeedbackPercentilesArgs): Promise<GetFeedbackPercentilesResponse> {
    throw new MastraError({
      id: 'OBSERVABILITY_STORAGE_GET_FEEDBACK_PERCENTILES_NOT_IMPLEMENTED',
      domain: ErrorDomain.MASTRA_OBSERVABILITY,
      category: ErrorCategory.SYSTEM,
      text: 'This storage provider does not support feedback percentiles',
    });
  }
}

View on GitHub (pinned to 75dd419e61)

Solutions

  1. Use a storage provider that implements getFeedbackTimeSeries (first-party DB adapters).
  2. Override getFeedbackTimeSeries in your adapter, bucketing feedback records by the requested interval and returning GetFeedbackTimeSeriesResponse.
  3. Feature-detect/wrap the call so callers receive an empty series or a clear 'unsupported' response instead of a crash.
  4. Upgrade the storage adapter package so it matches the core version that introduced this API.

Example fix

// before
const series = await customStorage.getFeedbackTimeSeries({ interval: '1d' }); // throws

// after
class MyStorage extends MastraObservabilityStorage {
  async getFeedbackTimeSeries(args: GetFeedbackTimeSeriesArgs): Promise<GetFeedbackTimeSeriesResponse> {
    return this.aggregateFeedbackByInterval(args);
  }
}
Defensive patterns

Strategy: fallback

Validate before calling

if (typeof (storage as any).getFeedbackTimeSeries !== 'function') { /* unsupported */ }

Type guard

function supportsFeedbackTimeSeries(s: unknown): s is MastraObservabilityStorage & { getFeedbackTimeSeries(a: GetFeedbackTimeSeriesArgs): Promise<GetFeedbackTimeSeriesResponse> } {
  return typeof (s as any)?.getFeedbackTimeSeries === 'function';
}

Try / catch

try {
  series = await storage.getFeedbackTimeSeries(args);
} catch (e) {
  if ((e as MastraError).id === 'OBSERVABILITY_STORAGE_GET_FEEDBACK_TIME_SERIES_NOT_IMPLEMENTED') {
    series = emptyTimeSeriesFallback;
  } else throw e;
}

Prevention

When it happens

Trigger: Calling observabilityStorage.getFeedbackTimeSeries(args) against an adapter inheriting the base implementation (no feedback time-series support).

Common situations: Building dashboards over a custom storage adapter; calling feedback time-series endpoints after switching storage backends to one with less coverage; version drift between @mastra/core and the storage adapter.

Related errors


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