{"record":{"id":"7c86698a04f4e5a6","repo":"tinyhumansai/openhuman","slug":"missing-url-parameter","errorCode":null,"errorMessage":"Missing 'url' parameter","messagePattern":"Missing 'url' parameter","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"src/openhuman/tools/impl/browser/browser_open.rs","lineNumber":83,"sourceCode":"\n    fn parameters_schema(&self) -> serde_json::Value {\n        json!({\n            \"type\": \"object\",\n            \"properties\": {\n                \"url\": {\n                    \"type\": \"string\",\n                    \"description\": \"HTTPS URL to open in Brave Browser\"\n                }\n            },\n            \"required\": [\"url\"]\n        })\n    }\n\n    async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {\n        let url = args\n            .get(\"url\")\n            .and_then(|v| v.as_str())\n            .ok_or_else(|| anyhow::anyhow!(\"Missing 'url' parameter\"))?;\n\n        if !self.security.can_act() {\n            return Ok(ToolResult::error(\n                \"[policy-blocked] Action blocked: autonomy is read-only\",\n            ));\n        }\n\n        if !self.security.record_action() {\n            return Ok(ToolResult::error(\"Action blocked: rate limit exceeded\"));\n        }\n\n        let url = match self.validate_url(url) {\n            Ok(v) => v,\n            Err(e) => return Ok(ToolResult::error(e.to_string())),\n        };\n\n        match open_in_brave(&url).await {\n            Ok(()) => Ok(ToolResult::success(format!(\"Opened in Brave: {url}\"))),","sourceCodeStart":65,"sourceCodeEnd":101,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/tools/impl/browser/browser_open.rs#L65-L101","documentation":"Guard in the browser_open tool's execute: args has no string `url`. This tool opens a URL in Brave Browser and requires url as its only required parameter; the error fires before security/path validation of the URL.","triggerScenarios":"Thrown at src/openhuman/tools/impl/browser/browser_open.rs:83 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Include `url` as a string in the tool args","Provide an https:// URL per the tool schema"],"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-14T05:17:10.506Z"}