tinyhumansai/openhuman · error · anyhow::Error

people_list: {e}

Error message

people_list: {e}

What it means

The people_list RPC handler (after guard acquisition and limit parsing) returned an error. The chained {e} comes from the driver's list_people call; the tool name prefix identifies the failing surface.

Source

Thrown at src/openhuman/memory/tools/people.rs:110

        json!({
            "type": "object",
            "properties": {
                "limit": { "type": "integer", "minimum": 1, "description": "Max contacts (default 100, cap 500)." }
            }
        })
    }

    async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {
        log::debug!("[tool][people] list invoked");
        let limit = args
            .get("limit")
            .and_then(serde_json::Value::as_u64)
            .map(|v| v as usize)
            .unwrap_or(100);
        let guard = people_guard().await?;
        let outcome = rpc::handle_list(guard.as_people().expect("checked"), limit)
            .await
            .map_err(|e| anyhow::anyhow!("people_list: {e}"))?;
        Ok(ToolResult::success(serde_json::to_string(&outcome.value)?))
    }

    fn is_concurrency_safe(&self, _args: &serde_json::Value) -> bool {
        true
    }
}

/// Resolve a handle to a person id.
pub struct PeopleResolveTool;

#[async_trait]
impl Tool for PeopleResolveTool {
    fn name(&self) -> &str {
        "people_resolve"
    }

    fn description(&self) -> &str {

View on GitHub (pinned to 7491200858)

Solutions

  1. Read the chained driver error for the real cause
  2. Retry transient store/module failures
  3. Check the people store health in the memory domain
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at src/openhuman/memory/tools/people.rs:110 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/f4a79eac617d2e92. Report an issue: GitHub.