tinyhumansai/openhuman · error

workspace_read_persona: {e}

Error message

workspace_read_persona: {e}

What it means

Reading the requested persona file (SOUL.md or IDENTITY.md) from the workspace failed at the ops layer — wrapped with the tool name for the LLM. The filename was already validated against the enum, so the failure is a workspace IO issue, not bad arguments.

Source

Thrown at src/openhuman/config/workspace/tools.rs:59

        "workspace_read_persona"
    }
    fn description(&self) -> &str {
        "Read an allowlisted workspace persona file (`filename` = SOUL.md or \
         IDENTITY.md), returning its contents and whether it is the bundled \
         default."
    }
    fn parameters_schema(&self) -> serde_json::Value {
        json!({
            "type": "object",
            "properties": { "filename": { "type": "string", "enum": ["SOUL.md", "IDENTITY.md"] } },
            "required": ["filename"]
        })
    }
    async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {
        log::debug!("[tool][workspace] read_persona invoked");
        let filename = req_str(&args, "filename")?;
        let outcome = rpc::read_workspace_file(&self.config.workspace_dir, &filename)
            .map_err(|e| anyhow::anyhow!("workspace_read_persona: {e}"))?;
        Ok(ToolResult::success(serde_json::to_string(&outcome.value)?))
    }
    fn is_concurrency_safe(&self, _args: &serde_json::Value) -> bool {
        true
    }
}

/// Rewrite a persona file. Default-OFF.
pub struct WorkspaceUpdatePersonaTool {
    config: Arc<Config>,
}
impl WorkspaceUpdatePersonaTool {
    pub fn new(config: Arc<Config>) -> Self {
        Self { config }
    }
}
#[async_trait]
impl Tool for WorkspaceUpdatePersonaTool {

View on GitHub (pinned to 7491200858)

Solutions

  1. Check workspace directory readability
  2. Run workspace_init if persona files were never scaffolded
  3. Inspect the wrapped error for the IO cause
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at src/openhuman/config/workspace/tools.rs:59 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/2d4b250dffe97e27. Report an issue: GitHub.