{"record":{"id":"93598b0c84a3d74c","repo":"tinyhumansai/openhuman","slug":"browser-backend-auto-needs-playwright-agent-bro","errorCode":null,"errorMessage":"browser.backend='auto' needs Playwright, agent-browser tool, browser-native, or valid computer-use sidecar (error: {err})","messagePattern":"browser\\.backend='auto' needs Playwright, agent-browser tool, browser-native, or valid computer-use sidecar \\(error: (.+?)\\)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/openhuman/tools/impl/browser/browser.rs","lineNumber":270,"sourceCode":"                let computer_use_err = match self.computer_use_available() {\n                    Ok(true) => return Ok(ResolvedBackend::ComputerUse),\n                    Ok(false) => None,\n                    Err(err) => Some(err.to_string()),\n                };\n\n                if Self::rust_native_compiled() {\n                    if let Some(err) = computer_use_err {\n                        anyhow::bail!(\n                            \"browser.backend='auto' found no usable backend (playwright missing, agent-browser missing, rust-native unavailable, computer-use invalid: {err})\"\n                        );\n                    }\n                    anyhow::bail!(\n                        \"browser.backend='auto' found no usable backend (playwright missing, agent-browser missing, rust-native unavailable, computer-use sidecar unreachable)\"\n                    )\n                }\n\n                if let Some(err) = computer_use_err {\n                    anyhow::bail!(\n                        \"browser.backend='auto' needs Playwright, agent-browser tool, browser-native, or valid computer-use sidecar (error: {err})\"\n                    );\n                }\n\n                anyhow::bail!(\n                    \"browser.backend='auto' needs Playwright, agent-browser tool, browser-native, or computer-use sidecar\"\n                )\n            }\n        }\n    }\n\n    /// Validate URL against allowlist\n    fn validate_url(&self, url: &str) -> anyhow::Result<()> {\n        let url = url.trim();\n\n        if url.is_empty() {\n            anyhow::bail!(\"URL cannot be empty\");\n        }","sourceCodeStart":252,"sourceCodeEnd":288,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/tools/impl/browser/browser.rs#L252-L288","documentation":"Final fallback arm of auto resolution when the build lacks browser-native but computer-use probing produced an error: it lists every remaining option (Playwright, agent-browser, computer-use sidecar) with the underlying probe error attached for diagnosis.","triggerScenarios":"Thrown at src/openhuman/tools/impl/browser/browser.rs:270 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Install Playwright or the agent-browser tool.","Fix the computer-use sidecar error included in the message.","Rebuild with browser-native for the rust backend."],"exampleFix":null,"handlingStrategy":"fallback","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"}