{"record":{"id":"3f4bcc1bb617f18d","repo":"TencentCloud/TencentDB-Agent-Memory","slug":"instance-id-is-empty-or-invalid-after-sanitization","errorCode":null,"errorMessage":"instance_id is empty or invalid after sanitization","messagePattern":"instance_id is empty or invalid after sanitization","errorType":"exception","errorClass":"InvalidInstanceIdError","httpStatus":null,"severity":"error","filePath":"MemoryCore/src/metadata/store/db-name.ts","lineNumber":39,"sourceCode":"}\n\nfunction normalizeDbPrefix(dbPrefix?: string): string {\n  const trimmed = dbPrefix?.trim();\n  return trimmed || DEFAULT_METADATA_DB_PREFIX;\n}\n\n/**\n * 解析逻辑库名，如 `tdai_metadata_default`。\n * @throws InvalidInstanceIdError 空或规范化后为空\n */\nexport function resolveMetadataDbName(\n  instanceId: string,\n  dbPrefix: string = DEFAULT_METADATA_DB_PREFIX,\n): string {\n  const prefix = normalizeDbPrefix(dbPrefix);\n  const sanitized = sanitizeInstanceIdForDb(instanceId);\n  if (!sanitized) {\n    throw new InvalidInstanceIdError(\"instance_id is empty or invalid after sanitization\");\n  }\n  const maxInstanceLen = 64 - prefix.length - 1;\n  const truncated = sanitized.slice(0, maxInstanceLen);\n  return `${prefix}_${truncated}`;\n}\n\n/** SQLite：{baseDir}/{dbName}/metadata.db */\nexport function resolveSqliteDbPath(\n  baseDir: string,\n  instanceId: string,\n  dbPrefix?: string,\n): string {\n  const dbName = resolveMetadataDbName(instanceId, dbPrefix);\n  return `${baseDir.replace(/\\/$/, \"\")}/${dbName}/metadata.db`;\n}\n\n/** SQLite 实例库目录（destroy 时递归删除） */\nexport function resolveSqliteDbDir(","sourceCodeStart":21,"sourceCodeEnd":57,"githubUrl":"https://github.com/TencentCloud/TencentDB-Agent-Memory/blob/3efcd317b84146d6a08518ac0f7ee7c8a8d200ec/MemoryCore/src/metadata/store/db-name.ts#L21-L57","documentation":"Error \"instance_id is empty or invalid after sanitization\" thrown in TencentCloud/TencentDB-Agent-Memory.","triggerScenarios":"Thrown at MemoryCore/src/metadata/store/db-name.ts:39 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"3efcd317b84146d6a08518ac0f7ee7c8a8d200ec","analyzedAt":"2026-09-01T05:44:22.276Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T15:18:49.778Z"}