tinyhumansai/openhuman · error · io::Error

Bubblewrap not found

Error message

Bubblewrap not found

What it means

Constructor guard in BubblewrapSandbox::new(): is_installed() probes for the `bwrap` binary (e.g. via `Command::new("bwrap")` version check) and this error is returned when the probe fails, meaning the bubblewrap user-space sandbox backend cannot be used on this machine because the executable is not on PATH.

Source

Thrown at src/openhuman/security/bubblewrap.rs:15

//! Bubblewrap sandbox (user namespaces for Linux/macOS)

use crate::openhuman::security::traits::Sandbox;
use std::process::Command;

/// Bubblewrap sandbox backend
#[derive(Debug, Clone, Default)]
pub struct BubblewrapSandbox;

impl BubblewrapSandbox {
    pub fn new() -> std::io::Result<Self> {
        if Self::is_installed() {
            Ok(Self)
        } else {
            Err(std::io::Error::new(
                std::io::ErrorKind::NotFound,
                "Bubblewrap not found",
            ))
        }
    }

    pub fn probe() -> std::io::Result<Self> {
        Self::new()
    }

    fn is_installed() -> bool {
        Command::new("bwrap")
            .arg("--version")
            .output()
            .map(|o| o.status.success())
            .unwrap_or(false)
    }
}

View on GitHub (pinned to 7491200858)

Solutions

  1. Install bubblewrap via the system package manager (apt install bubblewrap, dnf install bubblewrap, pacman -S bubblewrap)
  2. Verify `bwrap --version` succeeds in the same environment the core runs in
  3. Configure the agent/host to use a different sandbox backend (Docker, landlock, or noop) via sandbox_mode
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at src/openhuman/security/bubblewrap.rs:15 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/97096bf481a207ce. Report an issue: GitHub.