From 503bda4868aedb73d98be39af974706573ed333b Mon Sep 17 00:00:00 2001 From: Ben Younes Date: Fri, 13 Mar 2026 03:58:03 +0100 Subject: [PATCH] fix: add null guards for getChromaSync() when Chroma is disabled (#1336) When CLAUDE_MEM_CHROMA_ENABLED=false, getChromaSync() returns null. Two call sites were missing null guards, causing "null is not an object" errors on every UserPromptSubmit / session init. Fixes #1294 Vibe-coded by Ousama Ben Younes Co-authored-by: Claude Opus 4.6 --- src/services/worker/SearchManager.ts | 3 +++ src/services/worker/http/routes/SessionRoutes.ts | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/services/worker/SearchManager.ts b/src/services/worker/SearchManager.ts index 45c7e2d7..a72ce0d2 100644 --- a/src/services/worker/SearchManager.ts +++ b/src/services/worker/SearchManager.ts @@ -61,6 +61,9 @@ export class SearchManager { limit: number, whereFilter?: Record ): Promise<{ ids: number[]; distances: number[]; metadatas: any[] }> { + if (!this.chromaSync) { + return { ids: [], distances: [], metadatas: [] }; + } return await this.chromaSync.queryChroma(query, limit, whereFilter); } diff --git a/src/services/worker/http/routes/SessionRoutes.ts b/src/services/worker/http/routes/SessionRoutes.ts index 7b33c8c3..2bbe8f0e 100644 --- a/src/services/worker/http/routes/SessionRoutes.ts +++ b/src/services/worker/http/routes/SessionRoutes.ts @@ -356,7 +356,7 @@ export class SessionRoutes extends BaseRouteHandler { // Sync user prompt to Chroma const chromaStart = Date.now(); const promptText = latestPrompt.prompt_text; - this.dbManager.getChromaSync().syncUserPrompt( + this.dbManager.getChromaSync()?.syncUserPrompt( latestPrompt.id, latestPrompt.memory_session_id, latestPrompt.project,