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

  1. Install frontend dependencies: ensure app/node_modules exists.
  2. Run `pnpm --filter openhuman-app exec playwright install chromium-headless-shell`.
  3. Set OPENHUMAN_PLAYWRIGHT_CWD to the directory containing the Playwright install.
  4. 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.