tinyhumansai/openhuman · error · anyhow::Error

missing required object argument `patch`

Error message

missing required object argument `patch`

What it means

Argument-validation error in the task-source update tool's execute: the JSON-RPC/tool arguments failed read_required_str-style extraction of the required object argument `patch` (missing, non-object, or null). The tool's schema declares both `id` and `patch` required; this fires when the model or caller omits the partial TaskSourcePatch object.

Source

Thrown at src/openhuman/integrations/task_sources/tools.rs:452

            "properties": {
                "id": { "type": "string", "description": "Task-source id to update." },
                "patch": { "type": "object", "description": "Partial TaskSourcePatch (camelCase fields)." }
            },
            "required": ["id", "patch"]
        })
    }

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

    async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {
        log::debug!("[tool][task_sources] update invoked");
        let id = read_required_str(&args, "id")?;
        let patch_val = args
            .get("patch")
            .cloned()
            .ok_or_else(|| anyhow::anyhow!("missing required object argument `patch`"))?;
        let patch: TaskSourcePatch =
            serde_json::from_value(patch_val).map_err(|e| anyhow::anyhow!("invalid patch: {e}"))?;
        emit!(
            ops::update(&self.config, &id, patch).await,
            "task_source_update"
        )
    }
}

/// Delete a task source and its ingested history. **Destructive** —
/// default-OFF.
pub struct TaskSourceRemoveTool {
    config: Arc<Config>,
}

impl TaskSourceRemoveTool {
    pub fn new(config: Arc<Config>) -> Self {
        Self { config }

View on GitHub (pinned to 7491200858)

Solutions

  1. Include a 'patch' object with the camelCase fields to change
  2. Check the id/patch pair matches the tool schema's required list
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at src/openhuman/integrations/task_sources/tools.rs:452 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/1ce2b12d8357f478. Report an issue: GitHub.