tinyhumansai/openhuman · error · anyhow::Error
read_workflow_resource: {e}
Error message
read_workflow_resource: {e} What it means
Reading a workflow resource file failed inside `read_workflow_resource`. The id and allowlist checks passed; the failure is in the filesystem/resource read layer — missing resource file inside the skill bundle, permission denial, or path resolution against the profile skills root, with `{e}` carrying the underlying IO error.
Source
Thrown at src/openhuman/skills/tools.rs:325
log::debug!("[tool][workflows] read_resource invoked");
let skill_id = read_workflow_id(&args)?;
let profile_local = profile_local_skill_ids(self.profile_skills_root.as_deref());
if !skill_allowed_including_profile(&self.skill_allowlist, &profile_local, &skill_id) {
log::debug!(
"[profiles] read_workflow_resource blocked by profile allowlist: {skill_id}"
);
return Ok(ToolResult::error(format!(
"read_workflow_resource: workflow `{skill_id}` is not available to the active agent profile"
)));
}
let relative_path = read_required_str(&args, "relative_path")?;
let content = read_workflow_resource_with_profile(
&self.workspace_dir,
&skill_id,
Path::new(&relative_path),
self.profile_skills_root.as_deref(),
)
.map_err(|e| anyhow::anyhow!("read_workflow_resource: {e}"))?;
Ok(ToolResult::success(serde_json::to_string(&json!({
"workflow_id": skill_id,
"relative_path": relative_path,
"content": content,
}))?))
}
fn is_concurrency_safe(&self, _args: &serde_json::Value) -> bool {
true
}
}
/// List recent skill runs.
pub struct WorkflowRecentRunsTool {
workspace_dir: PathBuf,
active_profile_id: Option<String>,
skill_allowlist: SkillAllowlist,
profile_skills_root: Option<PathBuf>,View on GitHub (pinned to 7491200858)
Solutions
- Check `{e}` for the IO cause (missing vs permission)
- Verify the resource path exists inside the installed workflow bundle
- Reinstall the skill if its bundle is incomplete
- Confirm the profile skills root is readable
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at src/openhuman/skills/tools.rs:325 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/9d44528c0a988bc2.
Report an issue: GitHub.