tinyhumansai/openhuman · error
Missing 'command' parameter
Error message
Missing 'command' parameter
What it means
ShellTool's execute_in_context extracts the required 'command' string before option parsing, timeout policy, and security classification run; this fires when args omit 'command' or pass a non-string. No process is spawned.
Source
Thrown at src/openhuman/tools/impl/system/shell.rs:293
&self,
args: serde_json::Value,
_options: ToolCallOptions,
context: Option<&ToolExecutionContext>,
) -> anyhow::Result<ToolResult> {
self.execute_in_context(args, context).await
}
}
impl ShellTool {
async fn execute_in_context(
&self,
args: serde_json::Value,
context: Option<&ToolExecutionContext>,
) -> anyhow::Result<ToolResult> {
let command = args
.get("command")
.and_then(|v| v.as_str())
.ok_or_else(|| anyhow::anyhow!("Missing 'command' parameter"))?;
// Optional per-call wall-clock budget. `None`/`0` ⇒ run unbounded;
// a positive value is clamped downstream by
// `tool_timeout::explicit_call_timeout_*`. Shell has no default deadline
// (issue #4023) — long scripts must run to completion.
let requested_timeout = args.get("timeout_secs").and_then(|v| v.as_u64());
let start = Instant::now();
let (allowed, result) = self
.run_with_security_in_context(command, requested_timeout, context)
.await;
let duration_ms = u64::try_from(start.elapsed().as_millis()).unwrap_or(u64::MAX);
// `allowed` = passed the in-tool security checks. `approved` = the command
// is Prompt-class (required human approval) and thus went through the
// harness ApprovalGate to reach here — distinct from `allowed`. Reads and
// Full-mode writes run without a prompt, so they audit as approved=false
// rather than over-claiming a human approval that never happened. (The
// gate's exact yes/no isn't threaded into tools; this is the accurateView on GitHub (pinned to 7491200858)
Solutions
- Include the "command" string to execute in the shell tool arguments
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at src/openhuman/tools/impl/system/shell.rs:293 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/a6a780342927a7e3.
Report an issue: GitHub.