tinyhumansai/openhuman · error
Proxy is enabled but no proxy URL is configured. Set at leas
Error message
Proxy is enabled but no proxy URL is configured. Set at least one of http_proxy, https_proxy, or all_proxy
What it means
`ProxyConfig` validation requires at least one proxy URL — `http_proxy`, `https_proxy`, or `all_proxy` — whenever `proxy.enabled = true`. An enabled proxy with nothing to route through is rejected at load/update time (`has_any_proxy_url()` returns false) rather than silently not proxying anything. The adjacent rule enforces that `scope = "services"` additionally has a non-empty `services` list.
Source
Thrown at src/openhuman/config/schema/proxy.rs:129
("http_proxy", self.http_proxy.as_deref()),
("https_proxy", self.https_proxy.as_deref()),
("all_proxy", self.all_proxy.as_deref()),
] {
if let Some(url) = normalize_proxy_url_option(value) {
validate_proxy_url(field, &url)?;
}
}
for selector in self.normalized_services() {
if !is_supported_proxy_service_selector(&selector) {
anyhow::bail!(
"Unsupported proxy service selector '{selector}'. Use tool `proxy_config` action `list_services` for valid values"
);
}
}
if self.enabled && !self.has_any_proxy_url() {
anyhow::bail!(
"Proxy is enabled but no proxy URL is configured. Set at least one of http_proxy, https_proxy, or all_proxy"
);
}
if self.enabled
&& self.scope == ProxyScope::Services
&& self.normalized_services().is_empty()
{
anyhow::bail!(
"proxy.scope='services' requires a non-empty proxy.services list when proxy is enabled"
);
}
Ok(())
}
pub fn should_apply_to_service(&self, service_key: &str) -> bool {
if !self.enabled {View on GitHub (pinned to 7491200858)
Solutions
- Set at least one of `http_proxy`, `https_proxy`, or `all_proxy` to a valid URL (e.g. `http://127.0.0.1:7890`) while `enabled = true`.
- Or keep/set `enabled = false` until a proxy URL is actually configured.
- Remember the sibling rule: `scope = "services"` also requires a non-empty `services` list when enabled.
Example fix
# before [proxy] enabled = true # after [proxy] enabled = true http_proxy = "http://127.0.0.1:7890"
Defensive patterns
Strategy: validation
Validate before calling
if proxy.enabled && [proxy.http_proxy.as_ref(), proxy.https_proxy.as_ref(), proxy.all_proxy.as_ref()]
.iter()
.all(|u| u.is_none())
{
// set at least one proxy URL, or keep enabled=false — do not save this state
} Type guard
fn proxy_config_is_coherent(p: &ProxyConfig) -> bool {
!p.enabled || p.has_any_proxy_url()
} Prevention
- Set the proxy URL first, then flip enabled to true
- Do not expect HTTP_PROXY/HTTPS_PROXY env vars to satisfy the config fields — populate http_proxy/https_proxy/all_proxy explicitly
- Remember the sibling rule: scope='services' also requires a non-empty services list when enabled
When it happens
Trigger: Setting `proxy.enabled = true` in config.toml or via the proxy_config tool/UI while none of the three proxy URL fields is set — including cases where the URLs were assumed to come from environment variables but the config fields were never populated.
Common situations: Toggling the proxy on before filling in the URL; expecting HTTP_PROXY/HTTPS_PROXY env vars to satisfy the config fields; copy-pasted config snippets that omit the URL lines.
Related errors
- Unsupported proxy service selector '{selector}'. Use tool `p
- proxy.scope='services' requires a non-empty proxy.services l
- {}: missing `system_prompt` — custom definitions must set an
- Unsupported runtime kind: {other}
- agent `{parent}` is a `worker` tier and must not list `{chil
AI-assisted analysis of tinyhumansai/openhuman@7491200858 (2026-08-17).
Data as JSON: /api/errors/56d10b6e0e62d5df.
Report an issue: GitHub.