mastra-ai/mastra · error · MastraError

OBSERVABILITY_STORAGE_CREATE_FEEDBACK_NOT_IMPLEMENTED

OBSERVABILITY_STORAGE_CREATE_FEEDBACK_NOT_IMPLEMENTED

Error message

This storage provider does not support creating feedback

What it means

createFeedback persists a human or automated feedback record and is an optional capability; the base observability storage class throws this default. The configured storage adapter has no feedback write implementation.

Source

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

  async getScorePercentiles(_args: GetScorePercentilesArgs): Promise<GetScorePercentilesResponse> {
    throw new MastraError({
      id: 'OBSERVABILITY_STORAGE_GET_SCORE_PERCENTILES_NOT_IMPLEMENTED',
      domain: ErrorDomain.MASTRA_OBSERVABILITY,
      category: ErrorCategory.SYSTEM,
      text: 'This storage provider does not support score percentiles',
    });
  }

  // ============================================================================
  // Feedback
  // ============================================================================

  /**
   * Creates a single feedback record.
   */
  async createFeedback(_args: CreateFeedbackArgs): Promise<void> {
    throw new MastraError({
      id: 'OBSERVABILITY_STORAGE_CREATE_FEEDBACK_NOT_IMPLEMENTED',
      domain: ErrorDomain.MASTRA_OBSERVABILITY,
      category: ErrorCategory.SYSTEM,
      text: 'This storage provider does not support creating feedback',
    });
  }

  /**
   * 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',
    });
  }

View on GitHub (pinned to 75dd419e61)

Solutions

  1. Switch to a provider that implements feedback persistence (libsql, postgres, upstash).
  2. Implement createFeedback in your custom adapter writing a feedback row.
  3. Catch the error and disable/queue feedback collection in the UI.
  4. Verify the adapter package supports the feedback API surface.

Example fix

// before
await storage.createFeedback({ intent: 'thumbs-up', feedback: 'great', source: 'user' }); // throws
// after
try {
  await storage.createFeedback({ intent: 'thumbs-up', feedback: 'great', source: 'user' });
} catch (e) {
  if (e instanceof MastraError && e.id === 'OBSERVABILITY_STORAGE_CREATE_FEEDBACK_NOT_IMPLEMENTED') {
    return; // feature unsupported by this storage backend
  }
  throw e;
}
Defensive patterns

Strategy: try-catch

Validate before calling

const supportsFeedback = storage.constructor.prototype.hasOwnProperty('createFeedback');
if (!supportsFeedback) { disableFeedbackUI(); return; }

Type guard

function canCreateFeedback(s: any): s is { createFeedback: (a: any) => Promise<void> } {
  return typeof s?.createFeedback === 'function' && s.constructor.prototype.hasOwnProperty('createFeedback');
}

Try / catch

try {
  await storage.createFeedback(args);
} catch (e) {
  if (e instanceof MastraError && e.id === 'OBSERVABILITY_STORAGE_CREATE_FEEDBACK_NOT_IMPLEMENTED') {
    logger.warn('feedback not supported by storage; skipping');
    return;
  }
  throw e;
}

Prevention

When it happens

Trigger: Calling storage.createFeedback({ intent, feedback, source, ... }) on an adapter extending the base without overriding it, or via feedback UI/hooks wired to a provider that only implements traces/spans.

Common situations: Custom or minimal storage adapters; enabling user feedback features without upgrading storage; mixed @mastra/core and adapter versions.

Related errors


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