{"record":{"id":"dc55d4d5af4e621e","repo":"tinyhumansai/openhuman","slug":"invalid-target-e","errorCode":null,"errorMessage":"invalid target: {e}","messagePattern":"invalid target: (.+?)","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"src/openhuman/integrations/task_sources/tools.rs","lineNumber":384,"sourceCode":"                \"max_tasks_per_fetch\": { \"type\": \"integer\", \"minimum\": 1 },\n                \"assigned_executor\": { \"type\": \"string\" }\n            },\n            \"required\": [\"provider\", \"filter\"]\n        })\n    }\n\n    fn permission_level(&self) -> PermissionLevel {\n        PermissionLevel::Write\n    }\n\n    async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {\n        log::debug!(\"[tool][task_sources] add invoked\");\n        let provider = parse_provider(&args)?;\n        let filter = parse_filter(&args)?;\n        let target = match args.get(\"target\") {\n            Some(v) => Some(\n                serde_json::from_value(v.clone())\n                    .map_err(|e| anyhow::anyhow!(\"invalid target: {e}\"))?,\n            ),\n            None => None,\n        };\n        let max_tasks = opt_u64(&args, \"max_tasks_per_fetch\").map(|v| v as u32);\n        emit!(\n            ops::add(\n                &self.config,\n                provider,\n                opt_str(&args, \"connection_id\"),\n                opt_str(&args, \"name\"),\n                filter,\n                opt_u64(&args, \"interval_secs\"),\n                target,\n                max_tasks,\n                opt_str(&args, \"assigned_executor\"),\n            )\n            .await,\n            \"task_source_add\"","sourceCodeStart":366,"sourceCodeEnd":402,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/integrations/task_sources/tools.rs#L366-L402","documentation":"In the add tool's execute: an optional 'target' argument was supplied but failed to parse into the expected target type. Target is optional — supplying an invalid one is rejected rather than silently ignored.","triggerScenarios":"Thrown at src/openhuman/integrations/task_sources/tools.rs:384 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Fix the target value's shape to match the tool's target schema","Omit 'target' entirely to use the default targeting"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"749120085864ce16e0f273c7b86fac7740b39c5b","analyzedAt":"2026-08-17T21:21:45.363Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}