{"record":{"id":"34c86aa7be057ddd","repo":"paperclipai/paperclip","slug":"invalid-hold-id","errorCode":null,"errorMessage":"Invalid hold ID","messagePattern":"Invalid hold ID","errorType":"http","errorClass":null,"httpStatus":400,"severity":"error","filePath":"server/src/routes/issue-tree-control.ts","lineNumber":348,"sourceCode":"    const holds = await treeControlSvc.listHolds(root.companyId, root.id, {\n      status: statusParam === \"active\" || statusParam === \"released\" ? statusParam : undefined,\n      mode:\n        modeParam === \"pause\" || modeParam === \"resume\" || modeParam === \"cancel\" || modeParam === \"restore\"\n          ? modeParam\n          : undefined,\n      includeMembers,\n    });\n    res.json(holds);\n  });\n\n  router.get(\"/issues/:id/tree-holds/:holdId\", async (req, res) => {\n    assertBoard(req);\n    const root = await getAccessibleResource(req, res, resolveRootIssue(req), \"Root issue not found\");\n    if (!root) return;\n\n    const holdId = req.params.holdId as string;\n    if (!isUuidLike(holdId)) {\n      res.status(400).json({ error: \"Invalid hold ID\" });\n      return;\n    }\n\n    const hold = await treeControlSvc.getHold(root.companyId, holdId);\n    if (!hold || hold.rootIssueId !== root.id) {\n      res.status(404).json({ error: \"Issue tree hold not found\" });\n      return;\n    }\n    res.json(hold);\n  });\n\n  router.post(\n    \"/issues/:id/tree-holds/:holdId/release\",\n    validate(releaseIssueTreeHoldSchema),\n    async (req, res) => {\n      assertBoard(req);\n      const root = await getAccessibleResource(\n        req,","sourceCodeStart":330,"sourceCodeEnd":366,"githubUrl":"https://github.com/paperclipai/paperclip/blob/01ad8584922b5d85292b1723cae71fa0d9b07a19/server/src/routes/issue-tree-control.ts#L330-L366","documentation":"Error \"Invalid hold ID\" thrown in paperclipai/paperclip.","triggerScenarios":"Thrown at server/src/routes/issue-tree-control.ts:335 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Fix the offending parameter to satisfy the constraint stated in the error message (type, range, or allowed values), then retry.","Refer to the route's request validation in the named file and the shared validators for the accepted format."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"01ad8584922b5d85292b1723cae71fa0d9b07a19","analyzedAt":"2026-08-18T22:49:45.177Z","contentChangedAt":"2026-08-18T22:49:45.177Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}