tinyhumansai/openhuman · error · anyhow::Error
missing required argument `name`
Error message
missing required argument `name`
What it means
The skill-registry remove tool was invoked without a usable `name` argument — the installed-skill slug is missing, not a string, or empty after trimming. Removal needs the slug to locate the installed bundle, so the guard fires before any filesystem change.
Source
Thrown at src/openhuman/skills/catalog/tools.rs:282
"type": "string",
"description": "Installed skill slug to remove."
}
},
"required": ["name"]
})
}
fn permission_level(&self) -> PermissionLevel {
PermissionLevel::Write
}
async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {
let name = args
.get("name")
.and_then(|v| v.as_str())
.map(str::trim)
.filter(|value| !value.is_empty())
.ok_or_else(|| anyhow::anyhow!("missing required argument `name`"))?;
tracing::debug!(name = %name, "[tool][skill_registry] uninstall");
let params = crate::openhuman::skills::ops_install::UninstallWorkflowParams {
name: name.to_string(),
};
match crate::openhuman::skills::ops_install::uninstall_workflow(params, None) {
Ok(outcome) => Ok(ToolResult::success(serde_json::to_string(&json!({
"name": outcome.name,
"removed_path": outcome.removed_path,
"scope": outcome.scope,
}))?)),
Err(error) => Ok(ToolResult::error(format!(
"Failed to uninstall skill '{name}': {error}"
))),
}
}
}
#[cfg(test)]View on GitHub (pinned to 7491200858)
Solutions
- Pass `name` as the exact installed skill slug
- List installed skills first to copy the correct slug
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at src/openhuman/skills/catalog/tools.rs:282 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/97753223bee85085.
Report an issue: GitHub.