tinyhumansai/openhuman · error

install_workflow_from_url: {e}

Error message

install_workflow_from_url: {e}

What it means

Generic wrapper from install_workflow_from_url: after params parsed, fetching the remote bundle, validating its manifest, or writing it into the skills directory failed. The underlying {e} carries the real cause (network failure, invalid bundle, install refusal).

Source

Thrown at src/openhuman/skills/tools.rs:645

        })
    }

    fn permission_level(&self) -> PermissionLevel {
        PermissionLevel::Write
    }

    fn external_effect(&self) -> bool {
        // Fetches remote content over the network.
        true
    }

    async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {
        log::debug!("[tool][skills] install_from_url invoked");
        let params: InstallWorkflowFromUrlParams = serde_json::from_value(args)
            .map_err(|e| anyhow::anyhow!("install_workflow_from_url: invalid params: {e}"))?;
        let outcome = install_workflow_from_url(&self.workspace_dir, params)
            .await
            .map_err(|e| anyhow::anyhow!("install_workflow_from_url: {e}"))?;
        Ok(ToolResult::success(serde_json::to_string(&outcome)?))
    }
}

/// Uninstall a user skill. **Deletes from disk** — default-OFF.
pub struct WorkflowUninstallTool;

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

    fn description(&self) -> &str {
        "Uninstall a user-scope workflow by `name`, deleting its directory under \
         `~/.openhuman/skills/`. Irreversible; project/legacy workflows are \
         read-only and cannot be removed. Only use when the user asks to remove \
         a specific workflow."

View on GitHub (pinned to 7491200858)

Solutions

  1. Read {e}: network errors suggest retrying or fixing the URL
  2. Verify the URL serves a valid workflow bundle (SKILL.md/manifest present)
  3. Check that the install scope directory is writable
  4. Retry transient network failures with the timeout_secs parameter
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at src/openhuman/skills/tools.rs:645 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/4d900e75021319c6. Report an issue: GitHub.