tinyhumansai/openhuman · error

missing required boolean argument `show_tray`

Error message

missing required boolean argument `show_tray`

What it means

A required-argument guard in the `daemon_host_prefs_set` service tool: the tool-call arguments carried no usable boolean `show_tray` field — absent, null, or not a JSON boolean. The tool's schema declares `show_tray` as required, so this is a malformed model-issued tool call (or a caller that skipped schema validation), not a service-layer failure.

Source

Thrown at src/openhuman/platform/service/tools.rs:148

    fn parameters_schema(&self) -> serde_json::Value {
        json!({
            "type": "object",
            "properties": { "show_tray": { "type": "boolean", "description": "Show the tray icon." } },
            "required": ["show_tray"]
        })
    }

    fn permission_level(&self) -> PermissionLevel {
        PermissionLevel::Write
    }

    async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {
        log::debug!("[tool][service] daemon_host_prefs_set invoked");
        let show_tray = args
            .get("show_tray")
            .and_then(serde_json::Value::as_bool)
            .ok_or_else(|| anyhow::anyhow!("missing required boolean argument `show_tray`"))?;
        emit!(
            ops::daemon_host_set(&self.config, show_tray).await,
            "daemon_host_prefs_set"
        )
    }
}

/// Restart the core process. Default-OFF.
pub struct ServiceRestartTool;

#[async_trait]
impl Tool for ServiceRestartTool {
    fn name(&self) -> &str {
        "service_restart"
    }

    fn description(&self) -> &str {
        "Request an asynchronous restart of the core process, with optional \

View on GitHub (pinned to 7491200858)

Solutions

  1. Include `"show_tray": true` (or false) as a JSON boolean in the tool call
  2. When invoking programmatically, validate arguments against the tool schema first
  3. Do not pass the string `"true"` — the guard requires a genuine boolean
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at src/openhuman/platform/service/tools.rs:148 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/7dc1945ff01496ea. Report an issue: GitHub.