tinyhumansai/openhuman · error · anyhow::Error
load config: {error:#}
Error message
load config: {error:#} What it means
Loading the core TOML config via `Config::load_or_init()` failed inside the skills runtime-info tool before runtimes could be resolved. The tool needs config to find Node/Python runtime settings; `{e:#}` (alternate chain formatting) carries the full config-load cause — unreadable file, invalid TOML, or workspace resolution failure.
Source
Thrown at src/openhuman/skills/runtime/tools.rs:53
"type": "object",
"properties": {
"runtime": {
"type": "string",
"enum": ["all", "node", "python"],
"description": "Runtime to resolve. Defaults to all."
}
}
})
}
fn permission_level(&self) -> PermissionLevel {
PermissionLevel::ReadOnly
}
async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {
let config = Config::load_or_init()
.await
.map_err(|error| anyhow::anyhow!("load config: {error:#}"))?;
let requirement = RuntimeRequirement::from_optional(
args.get("runtime").and_then(serde_json::Value::as_str),
)
.map_err(|error| anyhow::anyhow!(error))?;
tracing::debug!(
requirement = ?requirement,
"[tool][skill_runtime] resolve_runtimes"
);
let outcome = resolve_runtimes(&config, requirement).await;
Ok(ToolResult::success(serde_json::to_string(&outcome)?))
}
fn is_concurrency_safe(&self, _args: &serde_json::Value) -> bool {
true
}
}
View on GitHub (pinned to 7491200858)
Solutions
- Check `{e:#}` chain for the config failure root
- Verify workspace dir and config.toml readability
- Retry on transient FS contention
- Fix invalid TOML if the chain points at parsing
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at src/openhuman/skills/runtime/tools.rs:53 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/a433ccc696df70dd.
Report an issue: GitHub.