tinyhumansai/openhuman · error
Failed to spawn jailed process: {e}
Error message
Failed to spawn jailed process: {e} What it means
execute_local_jail failed to spawn the jailed helper process — the OS rejected the spawn itself (helper binary missing, exec permission, resource limits). Stdout/stderr file redirection was set up but the process never ran.
Source
Thrown at src/openhuman/sandbox/ops.rs:291
let stderr_content = std::fs::read_to_string(&stderr_path).unwrap_or_default();
let _ = std::fs::remove_file(&stdout_path);
let _ = std::fs::remove_file(&stderr_path);
Ok(SandboxExecResult {
exit_code: wait_result.0,
stdout,
stderr: if wait_result.1 {
format!("Command timed out after {}s", timeout.as_secs())
} else {
stderr_content
},
timed_out: wait_result.1,
})
}
Err(e) => {
let _ = std::fs::remove_file(&stdout_path);
let _ = std::fs::remove_file(&stderr_path);
anyhow::bail!("Failed to spawn jailed process: {e}")
}
}
}
/// Check whether a tool operation is an elevated op that must run on the
/// host even when the session is sandboxed.
pub fn is_elevated_op(tool_name: &str) -> bool {
ELEVATED_TOOLS.contains(&tool_name)
}
/// Build an `ElevatedOp` for audit logging when a tool bypasses the sandbox.
pub fn build_elevated_op(tool_name: &str, command: &str, reason: &str) -> ElevatedOp {
tracing::info!(
tool = tool_name,
reason = reason,
"[sandbox] elevated host operation"
);
ElevatedOp {View on GitHub (pinned to 7491200858)
Solutions
- Verify the jail helper binary ships with the install and is executable
- Check {e} for the OS errno (ENOENT, EACCES, resource limits)
- Fall back to unsandboxed execution if the policy tier allows
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at src/openhuman/sandbox/ops.rs:291 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/627765c4afc19cdc.
Report an issue: GitHub.