tinyhumansai/openhuman · error
Only http:// and https:// URLs are allowed
Error message
Only http:// and https:// URLs are allowed
What it means
validate_url rejects any URL whose scheme is not http:// or https:// (checked after the file:// block). Only web schemes are automatable; schemes like ftp://, data:, or javascript: are refused as a hard boundary.
Source
Thrown at src/openhuman/tools/impl/browser/browser.rs:297
}
}
/// Validate URL against allowlist
fn validate_url(&self, url: &str) -> anyhow::Result<()> {
let url = url.trim();
if url.is_empty() {
anyhow::bail!("URL cannot be empty");
}
// Block file:// URLs — browser file access bypasses all SSRF and
// domain-allowlist controls and can exfiltrate arbitrary local files.
if url.starts_with("file://") {
anyhow::bail!("file:// URLs are not allowed in browser automation");
}
if !url.starts_with("https://") && !url.starts_with("http://") {
anyhow::bail!("Only http:// and https:// URLs are allowed");
}
if self.allowed_domains.is_empty() && !allow_all_browser_domains() {
anyhow::bail!(
"Browser tool enabled but no allowed_domains configured. \
Add [browser].allowed_domains in config.toml or set OPENHUMAN_BROWSER_ALLOW_ALL=1"
);
}
let host = extract_host(url)?;
if is_private_host(&host) {
anyhow::bail!("Blocked local/private host: {host}");
}
if !self.allowed_domains.is_empty() && !host_matches_allowlist(&host, &self.allowed_domains)
{
anyhow::bail!("Host '{host}' not in browser.allowed_domains");View on GitHub (pinned to 7491200858)
Solutions
- Use a standard http:// or https:// URL.
- Move data: payloads into tool arguments rather than URLs.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at src/openhuman/tools/impl/browser/browser.rs:297 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/afb3833ac668dc94.
Report an issue: GitHub.