{"record":{"id":"4ce688ef8fc1b0c7","repo":"tinyhumansai/openhuman","slug":"browser-backend-auto-found-no-usable-backend-pl","errorCode":null,"errorMessage":"browser.backend='auto' found no usable backend (playwright missing, agent-browser missing, rust-native unavailable, computer-use invalid: {err})","messagePattern":"browser\\.backend='auto' found no usable backend \\(playwright missing, agent-browser missing, rust-native unavailable, computer-use invalid: (.+?)\\)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/openhuman/tools/impl/browser/browser.rs","lineNumber":260,"sourceCode":"                if Self::rust_native_compiled() && self.rust_native_available() {\n                    return Ok(ResolvedBackend::RustNative);\n                }\n                if Self::is_playwright_available().await {\n                    return Ok(ResolvedBackend::Playwright);\n                }\n                if Self::is_agent_browser_available().await {\n                    return Ok(ResolvedBackend::AgentBrowser);\n                }\n\n                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            }","sourceCodeStart":242,"sourceCodeEnd":278,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/tools/impl/browser/browser.rs#L242-L278","documentation":"With browser.backend='auto', every candidate backend was tried and none was usable; this variant fires when the computer-use probe itself errored (config invalid), so the computer-use failure text is embedded in the message. It is the aggregate 'nothing available' report of the fallback chain.","triggerScenarios":"Thrown at src/openhuman/tools/impl/browser/browser.rs:260 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Install Playwright (see the browser tool docs) or the agent-browser tool.","Fix the computer-use config error quoted in the message.","Enable the browser-native feature and its WebDriver driver.","Switch browser.backend to an explicitly available 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"}