tinyhumansai/openhuman · error
memory_vector_search: query cannot be empty
Error message
memory_vector_search: query cannot be empty
What it means
The vector search tool parsed its arguments successfully but `query` was an empty (or whitespace-only) string. Because an empty query cannot produce a meaningful embedding, the tool rejects it before loading config or contacting the embedding provider — a semantic input guard that fires even though the shape of the arguments was valid.
Source
Thrown at src/openhuman/memory/tools/search/vector_search.rs:103
"type": "integer",
"minimum": 1,
"maximum": 50,
"description": "Max results to return (default 10)."
},
"diverse": {
"type": "boolean",
"description": "Apply MMR diversity to reduce redundancy among results (default false)."
}
}
})
}
async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {
let parsed: Args = serde_json::from_value(args)
.map_err(|e| anyhow::anyhow!("invalid arguments for memory_vector_search: {e}"))?;
if parsed.query.trim().is_empty() {
return Err(anyhow::anyhow!(
"memory_vector_search: query cannot be empty"
));
}
let limit = parsed.limit.clamp(1, 50);
let min_score = parsed.min_score.unwrap_or(0.3);
log::debug!(
"[tool][memory_vector_search] query_len={} source_kind={:?} window={:?} min_score={} limit={} diverse={}",
parsed.query.len(),
parsed.source_kind,
parsed.time_window_days,
min_score,
limit,
parsed.diverse,
);
let config = config_rpc::load_config_with_timeout()View on GitHub (pinned to 7491200858)
Solutions
- Provide a non-empty search query string
- Trim input client-side and fall back to a sensible default term instead of sending an empty string
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at src/openhuman/memory/tools/search/vector_search.rs:103 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of tinyhumansai/openhuman@7491200858 (2026-08-17).
Data as JSON: /api/errors/05a63c691256f7bf.
Report an issue: GitHub.