tinyhumansai/openhuman · error

workspace_update_persona: {e}

Error message

workspace_update_persona: {e}

What it means

Writing the updated persona file to the workspace failed at the ops layer; the tool name prefix marks it for the LLM. Arguments were already validated, so this is a workspace IO/permission failure during the write.

Source

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

            "properties": {
                "filename": { "type": "string", "enum": ["SOUL.md", "IDENTITY.md"] },
                "contents": { "type": "string" }
            },
            "required": ["filename", "contents"]
        })
    }
    fn permission_level(&self) -> PermissionLevel {
        PermissionLevel::Write
    }
    async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {
        log::debug!("[tool][workspace] update_persona invoked");
        let filename = req_str(&args, "filename")?;
        let contents = args
            .get("contents")
            .and_then(Value::as_str)
            .ok_or_else(|| anyhow::anyhow!("missing required string argument `contents`"))?;
        let outcome = rpc::write_workspace_file(&self.config.workspace_dir, &filename, contents)
            .map_err(|e| anyhow::anyhow!("workspace_update_persona: {e}"))?;
        Ok(ToolResult::success(serde_json::to_string(&outcome.value)?))
    }
}

/// Reset a persona file to its bundled default. Default-OFF.
pub struct WorkspaceResetPersonaTool {
    config: Arc<Config>,
}
impl WorkspaceResetPersonaTool {
    pub fn new(config: Arc<Config>) -> Self {
        Self { config }
    }
}
#[async_trait]
impl Tool for WorkspaceResetPersonaTool {
    fn name(&self) -> &str {
        "workspace_reset_persona"
    }

View on GitHub (pinned to 7491200858)

Solutions

  1. Check write permissions on the workspace directory
  2. 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:107 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/18bec343d613f649. Report an issue: GitHub.