tinyhumansai/openhuman · error
memory unavailable: {e}
Error message
memory unavailable: {e} What it means
Generic guard from the learning tools' get_cache(): acquiring the profile facet cache through the bound memory driver failed (driver unavailable, module not loaded, or capability unsupported). Every learning_* agent tool that needs facets fails with this wrapped error before doing any work.
Source
Thrown at src/openhuman/agent/learning/tools.rs:36
use std::time::{SystemTime, UNIX_EPOCH};
use async_trait::async_trait;
use serde_json::json;
use crate::openhuman::agent::learning::cache::FacetCache;
use crate::openhuman::agent::learning::stability_detector::StabilityDetector;
use crate::openhuman::config::rpc as config_rpc;
use crate::openhuman::memory::api::provider::{FacetState, ProfileFacet, UserState};
use crate::openhuman::tools::traits::{PermissionLevel, Tool, ToolResult};
/// Acquire the profile facet cache, mirroring `learning::schemas::get_cache`.
///
/// Goes through the bound driver: facets moved behind the memory module, so
/// there is no process-global client to ask any more.
async fn get_cache() -> anyhow::Result<FacetCache> {
let guard = crate::openhuman::memory::ops::guard::active_memory_guard()
.await
.map_err(|e| anyhow::anyhow!("memory unavailable: {e}"))?;
Ok(FacetCache::new(guard))
}
/// Compose the full facet key from a class string + key suffix.
fn full_key(class_str: &str, key_suffix: &str) -> String {
format!("{class_str}/{key_suffix}")
}
fn facet_to_json(f: &ProfileFacet) -> serde_json::Value {
serde_json::to_value(f).unwrap_or(serde_json::Value::Null)
}
fn read_required_str(args: &serde_json::Value, key: &str) -> anyhow::Result<String> {
args.get(key)
.and_then(serde_json::Value::as_str)
.map(str::trim)
.filter(|s| !s.is_empty())
.map(str::to_string)View on GitHub (pinned to 7491200858)
Solutions
- Check memory module/driver health and that profile facets are supported by the bound driver
- Retry after the memory subsystem finishes initialising
- Return a clean 'learning unavailable' tool error to the model instead of retrying in-turn
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at src/openhuman/agent/learning/tools.rs:36 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/29ab80e3693939c6.
Report an issue: GitHub.