{"record":{"id":"4e947ff4fa738c81","repo":"tinyhumansai/openhuman","slug":"unsupported-scroll-direction-direction-use-up","errorCode":null,"errorMessage":"Unsupported scroll direction '{direction}'. Use up/down/left/right","messagePattern":"Unsupported scroll direction '(.+?)'\\. Use up/down/left/right","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/openhuman/tools/impl/browser/native_backend.rs","lineNumber":217,"sourceCode":"                let client = self.active_client()?;\n                let element = find_element(client, &selector).await?;\n                hover_element(client, &element).await?;\n\n                Ok(json!({\n                    \"backend\": \"rust_native\",\n                    \"action\": \"hover\",\n                    \"selector\": selector,\n                }))\n            }\n            BrowserAction::Scroll { direction, pixels } => {\n                let client = self.active_client()?;\n                let amount = i64::from(pixels.unwrap_or(600));\n                let (dx, dy) = match direction.as_str() {\n                    \"up\" => (0, -amount),\n                    \"down\" => (0, amount),\n                    \"left\" => (-amount, 0),\n                    \"right\" => (amount, 0),\n                    _ => anyhow::bail!(\n                        \"Unsupported scroll direction '{direction}'. Use up/down/left/right\"\n                    ),\n                };\n\n                let position = client\n                    .execute(\n                        \"window.scrollBy(arguments[0], arguments[1]); return { x: window.scrollX, y: window.scrollY };\",\n                        vec![json!(dx), json!(dy)],\n                    )\n                    .await\n                    .context(\"Failed to execute scroll script\")?;\n\n                Ok(json!({\n                    \"backend\": \"rust_native\",\n                    \"action\": \"scroll\",\n                    \"position\": position,\n                }))\n            }","sourceCodeStart":199,"sourceCodeEnd":235,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/tools/impl/browser/native_backend.rs#L199-L235","documentation":"The native browser backend received a scroll action whose direction string does not match any of the four directions its match arms recognize, so no (dx, dy) pair can be computed and the action aborts before any scroll command reaches the browser client.","triggerScenarios":"Thrown at src/openhuman/tools/impl/browser/native_backend.rs:217 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass one of the exact direction strings 'up', 'down', 'left' or 'right'","Check the tool-call arguments for whitespace, casing or JSON typos in the direction field"],"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"}