tinyhumansai/openhuman · error
browser.backend='playwright' but Playwright is unavailable.
Error message
browser.backend='playwright' but Playwright is unavailable. Ensure app/node_modules is installed, run `pnpm --filter openhuman-app exec playwright install chromium-headless-shell`, or set OPENHUMAN_PLAYWRIGHT_CWD.
What it means
Error "browser.backend='playwright' but Playwright is unavailable. Ensure app/node_modules is installed, run `pnpm --filter openhuman-app exec playwright install chromium-headless-shell`, or set OPENHUMAN_PLAYWRIGHT_CWD." thrown in tinyhumansai/openhuman.
Source
Thrown at src/openhuman/tools/impl/browser/browser.rs:215
async fn resolve_backend(&self) -> anyhow::Result<ResolvedBackend> {
let configured = self.configured_backend()?;
match configured {
BrowserBackendKind::AgentBrowser => {
if Self::is_agent_browser_available().await {
Ok(ResolvedBackend::AgentBrowser)
} else {
anyhow::bail!(
"browser.backend='{}' but agent-browser is unavailable. Install it in your environment.",
configured.as_str()
)
}
}
BrowserBackendKind::Playwright => {
if Self::is_playwright_available().await {
Ok(ResolvedBackend::Playwright)
} else {
anyhow::bail!(
"browser.backend='playwright' but Playwright is unavailable. Ensure app/node_modules is installed, run `pnpm --filter openhuman-app exec playwright install chromium-headless-shell`, or set OPENHUMAN_PLAYWRIGHT_CWD."
)
}
}
BrowserBackendKind::RustNative => {
if !Self::rust_native_compiled() {
anyhow::bail!(
"browser.backend='rust_native' requires build feature 'browser-native'"
);
}
if !self.rust_native_available() {
anyhow::bail!(
"Rust-native browser backend is enabled but WebDriver endpoint is unreachable. Set browser.native_webdriver_url and start a compatible driver"
);
}
Ok(ResolvedBackend::RustNative)
}
BrowserBackendKind::ComputerUse => {View on GitHub (pinned to 7491200858)
Solutions
- Install frontend dependencies: ensure app/node_modules exists.
- Run `pnpm --filter openhuman-app exec playwright install chromium-headless-shell`.
- Set OPENHUMAN_PLAYWRIGHT_CWD to the directory containing the Playwright install.
- Switch browser.backend to 'auto' or another available backend.
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at src/openhuman/tools/impl/browser/browser.rs:215 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of tinyhumansai/openhuman@7491200858 (2026-08-17).
Data as JSON: /api/errors/8f107bb1c322056a.
Report an issue: GitHub.