{"record":{"id":"14b2d38c5293eed3","repo":"tinyhumansai/openhuman","slug":"missing-or-invalid-key-parameter","errorCode":null,"errorMessage":"Missing or invalid '{key}' parameter","messagePattern":"Missing or invalid '(.+?)' parameter","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"src/openhuman/tools/impl/browser/browser.rs","lineNumber":576,"sourceCode":"            if limit < 0 {\n                anyhow::bail!(\"Configured coordinate limit for '{key}' must be >= 0\")\n            }\n            if value > limit {\n                anyhow::bail!(\"'{key}'={value} exceeds configured limit {limit}\")\n            }\n        }\n        Ok(())\n    }\n\n    fn read_required_i64(\n        &self,\n        params: &serde_json::Map<String, Value>,\n        key: &str,\n    ) -> anyhow::Result<i64> {\n        params\n            .get(key)\n            .and_then(Value::as_i64)\n            .ok_or_else(|| anyhow::anyhow!(\"Missing or invalid '{key}' parameter\"))\n    }\n\n    fn validate_computer_use_action(\n        &self,\n        action: &str,\n        params: &serde_json::Map<String, Value>,\n    ) -> anyhow::Result<()> {\n        match action {\n            \"open\" => {\n                let url = params\n                    .get(\"url\")\n                    .and_then(Value::as_str)\n                    .ok_or_else(|| anyhow::anyhow!(\"Missing 'url' for open action\"))?;\n                self.validate_url(url)?;\n            }\n            \"mouse_move\" | \"mouse_click\" => {\n                let x = self.read_required_i64(params, \"x\")?;\n                let y = self.read_required_i64(params, \"y\")?;","sourceCodeStart":558,"sourceCodeEnd":594,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/tools/impl/browser/browser.rs#L558-L594","documentation":"Generic guard in read_required_i64 for computer-use actions: the named integer parameter ({key}, e.g. coordinate or key-code fields) is absent from params or not representable as i64. Validation of the action's numeric arguments fails before dispatch to the endpoint.","triggerScenarios":"Thrown at src/openhuman/tools/impl/browser/browser.rs:576 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Include {key} as an integer in the action params","Ensure the value is a JSON number, not a string","Keep coordinates within configured limits"],"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"}