tinyhumansai/openhuman · error
Failed to read config file {}: {error}
Error message
Failed to read config file {}: {error} What it means
ProxyConfigTool re-reads config.toml from disk (bypassing env overrides) for every get/set/disable/apply_env action so it can rewrite the file. This error means that raw read failed — file deleted mid-session, moved, or unreadable — before any proxy mutation happened.
Source
Thrown at src/openhuman/tools/impl/system/proxy_config.rs:24
use crate::openhuman::util::MaybeSet;
use async_trait::async_trait;
use serde_json::{json, Value};
use std::fs;
use std::sync::Arc;
pub struct ProxyConfigTool {
config: Arc<Config>,
security: Arc<SecurityPolicy>,
}
impl ProxyConfigTool {
pub fn new(config: Arc<Config>, security: Arc<SecurityPolicy>) -> Self {
Self { config, security }
}
fn load_config_without_env(&self) -> anyhow::Result<Config> {
let contents = fs::read_to_string(&self.config.config_path).map_err(|error| {
anyhow::anyhow!(
"Failed to read config file {}: {error}",
self.config.config_path.display()
)
})?;
let mut parsed: Config = toml::from_str(&contents).map_err(|error| {
anyhow::anyhow!(
"Failed to parse config file {}: {error}",
self.config.config_path.display()
)
})?;
parsed.config_path = self.config.config_path.clone();
parsed.workspace_dir = self.config.workspace_dir.clone();
Ok(parsed)
}
fn require_write_access(&self) -> Option<ToolResult> {
if !self.security.can_act() {View on GitHub (pinned to 7491200858)
Solutions
- Confirm config.toml exists at the configured path and is readable
- Restore or re-initialize the config file, then re-run the proxy_config action
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at src/openhuman/tools/impl/system/proxy_config.rs:24 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/517a33ab2ea693dc.
Report an issue: GitHub.