tinyhumansai/openhuman · error · anyhow::Error
remember_preference: {e}
Error message
remember_preference: {e} What it means
Generic error wrapper around the memory upsert for a pinned preference in remember_preference: after normalizing class/key/value and acquiring the active memory guard, persisting to the pinned-preferences namespace failed. The prefixed message identifies the tool; the underlying error is the memory store's.
Source
Thrown at src/openhuman/agent/tools/remember_preference.rs:283
let value = value_normalized.as_str();
if value.is_empty() {
return Ok(ToolResult::error("value cannot be empty".to_string()));
}
let mem_key = pinned_key(class, key);
let content = pinned_content(class, key, value);
tracing::debug!(
"[tool][remember_preference] upserting pinned preference: namespace={} key={} class={} value_len={}",
PINNED_PREFERENCES_NAMESPACE,
mem_key,
class.as_str(),
value.len()
);
let guard = active_memory_guard()
.await
.map_err(|e| anyhow::anyhow!("remember_preference: {e}"))?;
match guard
.store(
PINNED_PREFERENCES_NAMESPACE,
&mem_key,
&content,
// Core category — pinned preferences are permanent user facts.
MemoryCategory::Core,
None,
// Requested provenance; the guard stamps the effective value.
MemoryTaint::default(),
)
.await
{
Ok(()) => {
tracing::info!(
"[tool][remember_preference] pinned preference stored: \
namespace={} key={} class={} value_len={}",
PINNED_PREFERENCES_NAMESPACE,View on GitHub (pinned to 7491200858)
Solutions
- Inspect the wrapped error for the memory-store cause (IO, lock, schema)
- Verify the memory subsystem/module is available in this build
- Retry once the memory guard or store contention clears
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at src/openhuman/agent/tools/remember_preference.rs:283 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/068fb87b98581959.
Report an issue: GitHub.