{"record":{"id":"6c2642aedb26eb47","repo":"tinyhumansai/openhuman","slug":"missing-id-parameter-for-cancel-action","errorCode":null,"errorMessage":"Missing 'id' parameter for cancel action","messagePattern":"Missing 'id' parameter for cancel action","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/openhuman/tools/impl/system/schedule.rs","lineNumber":127,"sourceCode":"                    .get(\"id\")\n                    .and_then(|value| value.as_str())\n                    .ok_or_else(|| anyhow::anyhow!(\"Missing 'id' parameter for get action\"))?;\n                self.handle_get(id)\n            }\n            \"create\" | \"add\" | \"once\" => {\n                if let Some(blocked) = self.enforce_mutation_allowed(action) {\n                    return Ok(blocked);\n                }\n                self.handle_create_like(action, &args)\n            }\n            \"cancel\" | \"remove\" => {\n                if let Some(blocked) = self.enforce_mutation_allowed(action) {\n                    return Ok(blocked);\n                }\n                let id = args\n                    .get(\"id\")\n                    .and_then(|value| value.as_str())\n                    .ok_or_else(|| anyhow::anyhow!(\"Missing 'id' parameter for cancel action\"))?;\n                Ok(self.handle_cancel(id))\n            }\n            \"pause\" => {\n                if let Some(blocked) = self.enforce_mutation_allowed(action) {\n                    return Ok(blocked);\n                }\n                let id = args\n                    .get(\"id\")\n                    .and_then(|value| value.as_str())\n                    .ok_or_else(|| anyhow::anyhow!(\"Missing 'id' parameter for pause action\"))?;\n                Ok(self.handle_pause_resume(id, true))\n            }\n            \"resume\" => {\n                if let Some(blocked) = self.enforce_mutation_allowed(action) {\n                    return Ok(blocked);\n                }\n                let id = args\n                    .get(\"id\")","sourceCodeStart":109,"sourceCodeEnd":145,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/tools/impl/system/schedule.rs#L109-L145","documentation":"The destructive cancel/remove action passed the approval gate but the required job 'id' string is missing from args; this fires before the job is looked up, so nothing was cancelled.","triggerScenarios":"Thrown at src/openhuman/tools/impl/system/schedule.rs:127 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Include the \"id\" of the job to cancel/remove, from the list action output"],"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-14T05:17:10.506Z"}