{"record":{"id":"cd6e9507ffefd7f2","repo":"tinyhumansai/openhuman","slug":"memory-hybrid-search-unknown-mode-expected","errorCode":null,"errorMessage":"memory_hybrid_search: unknown mode '{}'; expected balanced, semantic, lexical, or graph_first","messagePattern":"memory_hybrid_search: unknown mode '(.+?)'; expected balanced, semantic, lexical, or graph_first","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/openhuman/memory/tools/search/hybrid_search.rs","lineNumber":116,"sourceCode":"            .map_err(|e| anyhow::anyhow!(\"invalid arguments for memory_hybrid_search: {e}\"))?;\n\n        if parsed.query.trim().is_empty() {\n            return Err(anyhow::anyhow!(\n                \"memory_hybrid_search: query cannot be empty\"\n            ));\n        }\n        if parsed.namespace.trim().is_empty() {\n            return Err(anyhow::anyhow!(\n                \"memory_hybrid_search: namespace cannot be empty\"\n            ));\n        }\n\n        let profile = WeightProfile::by_name(&parsed.mode).ok_or_else(|| {\n            log::warn!(\n                \"[tool][memory_hybrid_search] rejected unknown mode={}\",\n                parsed.mode\n            );\n            anyhow::anyhow!(\n                \"memory_hybrid_search: unknown mode '{}'; expected balanced, semantic, lexical, or graph_first\",\n                parsed.mode\n            )\n        })?;\n        let limit = parsed.limit.clamp(1, 50);\n\n        log::debug!(\n            \"[tool][memory_hybrid_search] query_len={} ns={} mode={} limit={}\",\n            parsed.query.len(),\n            parsed.namespace,\n            parsed.mode,\n            limit,\n        );\n\n        // Reads through the bound driver. This used to call\n        // `UnifiedMemory::new(&config.workspace_dir, …)` — constructing a\n        // *whole second engine* over the workspace the loaded module already\n        // owns, the most severe instance of the split brain this port removes.","sourceCodeStart":98,"sourceCodeEnd":134,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/memory/tools/search/hybrid_search.rs#L98-L134","documentation":"WeightProfile::by_name did not recognize the mode string — the schema documents balanced (default), semantic, lexical and graph_first, and anything else (including typos) falls to this arm after a warn log.","triggerScenarios":"Thrown at src/openhuman/memory/tools/search/hybrid_search.rs:116 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use one of: balanced, semantic, lexical, graph_first","Omit mode to get the balanced default","Check casing and typos in the mode string"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"749120085864ce16e0f273c7b86fac7740b39c5b","analyzedAt":"2026-08-17T21:21:45.363Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}