{"record":{"id":"5abb72bd38324bc7","repo":"mastra-ai/mastra","slug":"observability-storage-get-entity-types-not-impleme","errorCode":"OBSERVABILITY_STORAGE_GET_ENTITY_TYPES_NOT_IMPLEMENTED","errorMessage":"This storage provider does not support entity type discovery","messagePattern":"This storage provider does not support entity type discovery","errorType":"error_code","errorClass":"MastraError","httpStatus":null,"severity":"warning","filePath":"packages/core/src/storage/domains/observability/base.ts","lineNumber":517,"sourceCode":"    throw new MastraError({\n      id: 'OBSERVABILITY_STORAGE_GET_METRIC_LABEL_KEYS_NOT_IMPLEMENTED',\n      domain: ErrorDomain.MASTRA_OBSERVABILITY,\n      category: ErrorCategory.SYSTEM,\n      text: 'This storage provider does not support metric label key discovery',\n    });\n  }\n\n  async getMetricLabelValues(_args: GetMetricLabelValuesArgs): Promise<GetMetricLabelValuesResponse> {\n    throw new MastraError({\n      id: 'OBSERVABILITY_STORAGE_GET_LABEL_VALUES_NOT_IMPLEMENTED',\n      domain: ErrorDomain.MASTRA_OBSERVABILITY,\n      category: ErrorCategory.SYSTEM,\n      text: 'This storage provider does not support label value discovery',\n    });\n  }\n\n  async getEntityTypes(_args: GetEntityTypesArgs): Promise<GetEntityTypesResponse> {\n    throw new MastraError({\n      id: 'OBSERVABILITY_STORAGE_GET_ENTITY_TYPES_NOT_IMPLEMENTED',\n      domain: ErrorDomain.MASTRA_OBSERVABILITY,\n      category: ErrorCategory.SYSTEM,\n      text: 'This storage provider does not support entity type discovery',\n    });\n  }\n\n  async getEntityNames(_args: GetEntityNamesArgs): Promise<GetEntityNamesResponse> {\n    throw new MastraError({\n      id: 'OBSERVABILITY_STORAGE_GET_ENTITY_NAMES_NOT_IMPLEMENTED',\n      domain: ErrorDomain.MASTRA_OBSERVABILITY,\n      category: ErrorCategory.SYSTEM,\n      text: 'This storage provider does not support entity name discovery',\n    });\n  }\n\n  async getServiceNames(_args: GetServiceNamesArgs): Promise<GetServiceNamesResponse> {\n    throw new MastraError({","sourceCodeStart":499,"sourceCodeEnd":535,"githubUrl":"https://github.com/mastra-ai/mastra/blob/75dd419e613fe9c39f846ffc500716141b74fda6/packages/core/src/storage/domains/observability/base.ts#L499-L535","documentation":"MastraError OBSERVABILITY_STORAGE_GET_ENTITY_TYPES_NOT_IMPLEMENTED. The base observability storage class throws this from getEntityTypes when a provider has not implemented entity type discovery. It indicates the backend cannot enumerate the entity types (e.g. agent, workflow, tool) that have telemetry data.","triggerScenarios":"Calling getEntityTypes(args) on a storage instance whose class relies on the base implementation.","commonSituations":"Telemetry explorer UIs listing entity types against minimal or custom storage adapters; provider versions predating entity-type discovery; wiring a scores-only backend into the observability slot.","solutions":["Use a storage provider that implements entity type discovery","Override getEntityTypes to return the distinct entity types in your telemetry tables","Catch and degrade (return an empty list or hardcode known types) when unsupported"],"exampleFix":"// before\nconst types = await storage.getEntityTypes({});\n// after\nlet types = [];\ntry {\n  types = (await storage.getEntityTypes({})).entityTypes ?? [];\n} catch (e) {\n  if (e.id !== 'OBSERVABILITY_STORAGE_GET_ENTITY_TYPES_NOT_IMPLEMENTED') throw e;\n}","handlingStrategy":"fallback","validationCode":"async function supportsEntityTypes(storage) {\n  try { await storage.getEntityTypes({}); return true; }\n  catch (e) { return e?.id === 'OBSERVABILITY_STORAGE_GET_ENTITY_TYPES_NOT_IMPLEMENTED' ? false : true; }\n}","typeGuard":"function isNotImplementedError(e: unknown): e is MastraError {\n  return e instanceof MastraError && e.id === 'OBSERVABILITY_STORAGE_GET_ENTITY_TYPES_NOT_IMPLEMENTED';\n}","tryCatchPattern":"try {\n  const res = await storage.getEntityTypes(args);\n} catch (e) {\n  if (isNotImplementedError(e)) return { entityTypes: [] };\n  throw e;\n}","preventionTips":["Check provider capability matrix for entity type discovery","Probe capabilities once at app boot and cache the result","Use the official observability storage implementations where possible","Add integration tests that exercise each discovery method you rely on"],"tags":["storage","observability","not-implemented","telemetry"],"backgroundTag":"storage-method-not-implemented","analyzedSha":"75dd419e613fe9c39f846ffc500716141b74fda6","analyzedAt":"2026-08-30T00:15:31.844Z","schemaVersion":2},"datasetVersion":"2026-08-30T03:17:51.788Z"}