{"record":{"id":"9e56d9a9056a4fa1","repo":"mastra-ai/mastra","slug":"observability-storage-list-feedback-not-implemente","errorCode":"OBSERVABILITY_STORAGE_LIST_FEEDBACK_NOT_IMPLEMENTED","errorMessage":"This storage provider does not support listing feedback","messagePattern":"This storage provider does not support listing feedback","errorType":"error_code","errorClass":"MastraError","httpStatus":null,"severity":"error","filePath":"packages/core/src/storage/domains/observability/base.ts","lineNumber":681,"sourceCode":"  }\n\n  /**\n   * Creates multiple feedback observations in a single batch.\n   */\n  async batchCreateFeedback(_args: BatchCreateFeedbackArgs): Promise<void> {\n    throw new MastraError({\n      id: 'OBSERVABILITY_STORAGE_BATCH_CREATE_FEEDBACK_NOT_IMPLEMENTED',\n      domain: ErrorDomain.MASTRA_OBSERVABILITY,\n      category: ErrorCategory.SYSTEM,\n      text: 'This storage provider does not support batch creating feedback',\n    });\n  }\n\n  /**\n   * Retrieves a list of feedback with optional filtering.\n   */\n  async listFeedback(_args: ListFeedbackArgs): Promise<ListFeedbackResponse> {\n    throw new MastraError({\n      id: 'OBSERVABILITY_STORAGE_LIST_FEEDBACK_NOT_IMPLEMENTED',\n      domain: ErrorDomain.MASTRA_OBSERVABILITY,\n      category: ErrorCategory.SYSTEM,\n      text: 'This storage provider does not support listing feedback',\n    });\n  }\n\n  async getFeedbackAggregate(_args: GetFeedbackAggregateArgs): Promise<GetFeedbackAggregateResponse> {\n    throw new MastraError({\n      id: 'OBSERVABILITY_STORAGE_GET_FEEDBACK_AGGREGATE_NOT_IMPLEMENTED',\n      domain: ErrorDomain.MASTRA_OBSERVABILITY,\n      category: ErrorCategory.SYSTEM,\n      text: 'This storage provider does not support feedback aggregation',\n    });\n  }\n\n  async getFeedbackBreakdown(_args: GetFeedbackBreakdownArgs): Promise<GetFeedbackBreakdownResponse> {\n    throw new MastraError({","sourceCodeStart":663,"sourceCodeEnd":699,"githubUrl":"https://github.com/mastra-ai/mastra/blob/75dd419e613fe9c39f846ffc500716141b74fda6/packages/core/src/storage/domains/observability/base.ts#L663-L699","documentation":"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.","triggerScenarios":"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.","commonSituations":"Custom/minimal storage adapters; feedback dashboards; older storage packages missing the feedback API.","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."],"exampleFix":"// before\nconst feedback = await storage.listFeedback({ scope }); // throws\n// after\ntry {\n  const feedback = await storage.listFeedback({ scope });\n} catch (e) {\n  if (e instanceof MastraError && e.id === 'OBSERVABILITY_STORAGE_LIST_FEEDBACK_NOT_IMPLEMENTED') {\n    return { feedback: [], total: 0 };\n  }\n  throw e;\n}","handlingStrategy":"try-catch","validationCode":"const supportsListFeedback = storage.constructor.prototype.hasOwnProperty('listFeedback');\nif (!supportsListFeedback) return { feedback: [], total: 0 };","typeGuard":"function canListFeedback(s: any): s is { listFeedback: (a: any) => Promise<any> } {\n  return typeof s?.listFeedback === 'function' && s.constructor.prototype.hasOwnProperty('listFeedback');\n}","tryCatchPattern":"try {\n  return await storage.listFeedback(args);\n} catch (e) {\n  if (e instanceof MastraError && e.id === 'OBSERVABILITY_STORAGE_LIST_FEEDBACK_NOT_IMPLEMENTED') {\n    return { feedback: [], total: 0 };\n  }\n  throw e;\n}","preventionTips":["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"],"tags":["storage","observability","not-implemented","feedback"],"backgroundTag":"storage-capability-not-implemented","analyzedSha":"75dd419e613fe9c39f846ffc500716141b74fda6","analyzedAt":"2026-08-30T00:15:31.844Z","schemaVersion":2},"datasetVersion":"2026-08-30T03:17:51.788Z"}