{"record":{"id":"6e8061c4574b1d5c","repo":"tinyhumansai/openhuman","slug":"memory-client-not-ready","errorCode":null,"errorMessage":"memory client not ready","messagePattern":"memory client not ready","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/openhuman/agent/learning/tools.rs","lineNumber":32,"sourceCode":"//! forgetting, rebuilding, resetting, and the profile writers — ships\n//! default-OFF via `tools/user_filter.rs` (`learning_manage` toggle), because\n//! they persistently rewrite the assistant's model of the user.\n\nuse std::time::{SystemTime, UNIX_EPOCH};\n\nuse async_trait::async_trait;\nuse serde_json::json;\n\nuse crate::openhuman::agent::learning::cache::FacetCache;\nuse crate::openhuman::agent::learning::stability_detector::StabilityDetector;\nuse crate::openhuman::config::rpc as config_rpc;\nuse crate::openhuman::memory::store::profile::{FacetState, ProfileFacet, UserState};\nuse crate::openhuman::tools::traits::{PermissionLevel, Tool, ToolResult};\n\n/// Acquire the profile facet cache, mirroring `learning::schemas::get_cache`.\nfn get_cache() -> anyhow::Result<FacetCache> {\n    let client = crate::openhuman::memory::global::client_if_ready()\n        .ok_or_else(|| anyhow::anyhow!(\"memory client not ready\"))?;\n    Ok(FacetCache::new(client.profile_store()))\n}\n\n/// Compose the full facet key from a class string + key suffix.\nfn full_key(class_str: &str, key_suffix: &str) -> String {\n    format!(\"{class_str}/{key_suffix}\")\n}\n\nfn facet_to_json(f: &ProfileFacet) -> serde_json::Value {\n    serde_json::to_value(f).unwrap_or(serde_json::Value::Null)\n}\n\nfn read_required_str(args: &serde_json::Value, key: &str) -> anyhow::Result<String> {\n    args.get(key)\n        .and_then(serde_json::Value::as_str)\n        .map(str::trim)\n        .filter(|s| !s.is_empty())\n        .map(str::to_string)","sourceCodeStart":14,"sourceCodeEnd":50,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/a221052e0df5b1f7598fceba7329fd1af95d6699/src/openhuman/agent/learning/tools.rs#L14-L50","documentation":"Error \"memory client not ready\" thrown in tinyhumansai/openhuman.","triggerScenarios":"Thrown at src/openhuman/agent/learning/tools.rs:32 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"a221052e0df5b1f7598fceba7329fd1af95d6699","analyzedAt":"2026-08-16T12:47:06.542Z","schemaVersion":2},"datasetVersion":"2026-08-16T13:17:31.715Z"}