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
- Include a 'patch' object with the camelCase fields to change
- 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.