tinyhumansai/openhuman · error · anyhow::Error

Playwright daemon stdin unavailable

Error message

Playwright daemon stdin unavailable

What it means

Guard in start_daemon for the Playwright backend: the daemon process spawned successfully but its stdin pipe could not be taken — the child was not spawned with piped stdin or the handle was already consumed. The Rust side can no longer send commands to the daemon.

Source

Thrown at src/openhuman/tools/impl/browser/playwright_backend.rs:272

        .stderr(Stdio::piped());
    apply_node_cwd(&mut command);

    let mut child = command
        .spawn()
        .map_err(|error| {
            tracing::debug!(
                error = %error,
                "[browser::playwright] failed to spawn backend daemon"
            );
            error
        })
        .context(
            "Failed to start Playwright backend. Ensure Node.js and the Playwright package are installed.",
        )?;
    let stdin = child
        .stdin
        .take()
        .ok_or_else(|| anyhow::anyhow!("Playwright daemon stdin unavailable"))?;
    let stdout = child
        .stdout
        .take()
        .ok_or_else(|| anyhow::anyhow!("Playwright daemon stdout unavailable"))?;

    if let Some(stderr) = child.stderr.take() {
        tokio::spawn(async move {
            let mut lines = BufReader::new(stderr).lines();
            while let Ok(Some(line)) = lines.next_line().await {
                tracing::debug!("[browser::playwright] stderr: {line}");
            }
        });
    }

    tracing::debug!("[browser::playwright] backend daemon spawned");
    Ok(PlaywrightDaemon {
        child,
        stdin,

View on GitHub (pinned to 7491200858)

Solutions

  1. Restart the tool/core so the daemon respawns with piped stdio
  2. Check for another instance holding the daemon
  3. Report if persistent — the Stdio::piped wiring may be broken
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at src/openhuman/tools/impl/browser/playwright_backend.rs:272 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/cfb4b64f06bc0bb4. Report an issue: GitHub.