{"record":{"id":"309553a8b883fdbd","repo":"mastra-ai/mastra","slug":"observability-storage-get-entity-names-not-impleme","errorCode":"OBSERVABILITY_STORAGE_GET_ENTITY_NAMES_NOT_IMPLEMENTED","errorMessage":"This storage provider does not support entity name discovery","messagePattern":"This storage provider does not support entity name discovery","errorType":"error_code","errorClass":"MastraError","httpStatus":null,"severity":"warning","filePath":"packages/core/src/storage/domains/observability/base.ts","lineNumber":526,"sourceCode":"    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({\n      id: 'OBSERVABILITY_STORAGE_GET_SERVICE_NAMES_NOT_IMPLEMENTED',\n      domain: ErrorDomain.MASTRA_OBSERVABILITY,\n      category: ErrorCategory.SYSTEM,\n      text: 'This storage provider does not support service name discovery',\n    });\n  }\n\n  async getEnvironments(_args: GetEnvironmentsArgs): Promise<GetEnvironmentsResponse> {\n    throw new MastraError({","sourceCodeStart":508,"sourceCodeEnd":544,"githubUrl":"https://github.com/mastra-ai/mastra/blob/75dd419e613fe9c39f846ffc500716141b74fda6/packages/core/src/storage/domains/observability/base.ts#L508-L544","documentation":"MastraError OBSERVABILITY_STORAGE_GET_ENTITY_NAMES_NOT_IMPLEMENTED. getEntityNames in the observability storage base class is a stub that always throws, so providers that do not implement entity name discovery surface this error. It means the backend cannot list entity names (specific agent/workflow identifiers) recorded in telemetry.","triggerScenarios":"Calling getEntityNames(args) on a storage class that relies on the base stub.","commonSituations":"Filter dropdowns in observability dashboards against unsupported storage; custom adapters migrating from older MastraStorage interfaces; using scores-only or traces-only backends for full metric exploration.","solutions":["Switch to a provider implementing entity name discovery","Override getEntityNames in your storage domain to query distinct entity names","Catch the error and fall back to empty/manual filters"],"exampleFix":"// before\nconst names = await storage.getEntityNames({ entityType: 'agent' });\n// after\nlet names = [];\ntry {\n  names = (await storage.getEntityNames({ entityType: 'agent' })).entityNames ?? [];\n} catch (e) {\n  if (e.id !== 'OBSERVABILITY_STORAGE_GET_ENTITY_NAMES_NOT_IMPLEMENTED') throw e;\n}","handlingStrategy":"fallback","validationCode":"async function supportsEntityNames(storage) {\n  try { await storage.getEntityNames({}); return true; }\n  catch (e) { return e?.id === 'OBSERVABILITY_STORAGE_GET_ENTITY_NAMES_NOT_IMPLEMENTED' ? false : true; }\n}","typeGuard":"function isNotImplementedError(e: unknown): e is MastraError {\n  return e instanceof MastraError && e.id === 'OBSERVABILITY_STORAGE_GET_ENTITY_NAMES_NOT_IMPLEMENTED';\n}","tryCatchPattern":"try {\n  const res = await storage.getEntityNames(args);\n} catch (e) {\n  if (isNotImplementedError(e)) return { entityNames: [] };\n  throw e;\n}","preventionTips":["Verify entity name discovery in your provider before relying on entity filters","Fall back to entity names supplied by application config when discovery is absent","Keep custom adapters implementing the full observability domain surface","Test discovery endpoints after any storage backend swap"],"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"}