{"record":{"id":"30d39dd90137e96c","repo":"tinyhumansai/openhuman","slug":"i-m-not-allowed-to-open-host-it-isn-t-in-you","errorCode":null,"errorMessage":"I'm not allowed to open '{host}' — it isn't in your allowed websites. Add it (or turn on \"Allow all sites\") under Settings → Advanced → Search engine → Allowed websites, then ask me again.","messagePattern":"I'm not allowed to open '(.+?)' — it isn't in your allowed websites\\. Add it \\(or turn on \"Allow all sites\"\\) under Settings → Advanced → Search engine → Allowed websites, then ask me again\\.","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/openhuman/tools/impl/network/url_guard.rs","lineNumber":73,"sourceCode":"                \"open\"\n            } else {\n                \"strict\"\n            }\n        );\n        anyhow::bail!(\"Blocked local/private host: {host}\");\n    }\n\n    // Empty allowed_domains = open mode: any public non-private host is\n    // permitted (same as [\"*\"]). This ensures the http_request tool works\n    // out of the box regardless of whether the user configured an explicit\n    // domain list, and keeps web-fetch consistent across routing paths.\n    // A non-empty list = strict mode: only listed domains pass. (#2700)\n    if !allowed_domains.is_empty() && !host_matches_allowlist(&host, allowed_domains) {\n        log::debug!(\n            \"[url_guard] strict-allowlist rejection: host={host} allowed={:?}\",\n            allowed_domains\n        );\n        anyhow::bail!(\n            \"I'm not allowed to open '{host}' — it isn't in your allowed websites. \\\n             Add it (or turn on \\\"Allow all sites\\\") under \\\n             Settings → Advanced → Search engine → Allowed websites, then ask me again.\"\n        );\n    }\n\n    log::debug!(\n        \"[url_guard] validate_url ok: host={host} mode={}\",\n        if allowed_domains.is_empty() {\n            \"open\"\n        } else {\n            \"strict\"\n        }\n    );\n\n    Ok(url.to_string())\n}\n","sourceCodeStart":55,"sourceCodeEnd":91,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/tools/impl/network/url_guard.rs#L55-L91","documentation":"Error \"I'm not allowed to open '{host}' — it isn't in your allowed websites. Add it (or turn on \"Allow all sites\") under Settings → Advanced → Search engine → Allowed websites, then ask me again.\" thrown in tinyhumansai/openhuman.","triggerScenarios":"Thrown at src/openhuman/tools/impl/network/url_guard.rs:73 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Add the site to the allowed websites list under Settings → Advanced → Search engine → Allowed websites","Enable 'Allow all sites' in those settings to switch to open mode","Ask the user to adjust the allowlist rather than bypassing the guard"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"749120085864ce16e0f273c7b86fac7740b39c5b","analyzedAt":"2026-08-17T21:21:45.363Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}