paperclipai/paperclip · error
Invalid hold ID
Error message
Invalid hold ID
What it means
Error "Invalid hold ID" thrown in paperclipai/paperclip.
Source
Thrown at server/src/routes/issue-tree-control.ts:348
const holds = await treeControlSvc.listHolds(root.companyId, root.id, {
status: statusParam === "active" || statusParam === "released" ? statusParam : undefined,
mode:
modeParam === "pause" || modeParam === "resume" || modeParam === "cancel" || modeParam === "restore"
? modeParam
: undefined,
includeMembers,
});
res.json(holds);
});
router.get("/issues/:id/tree-holds/:holdId", async (req, res) => {
assertBoard(req);
const root = await getAccessibleResource(req, res, resolveRootIssue(req), "Root issue not found");
if (!root) return;
const holdId = req.params.holdId as string;
if (!isUuidLike(holdId)) {
res.status(400).json({ error: "Invalid hold ID" });
return;
}
const hold = await treeControlSvc.getHold(root.companyId, holdId);
if (!hold || hold.rootIssueId !== root.id) {
res.status(404).json({ error: "Issue tree hold not found" });
return;
}
res.json(hold);
});
router.post(
"/issues/:id/tree-holds/:holdId/release",
validate(releaseIssueTreeHoldSchema),
async (req, res) => {
assertBoard(req);
const root = await getAccessibleResource(
req,View on GitHub (pinned to 01ad858492)
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.
When it happens
Trigger: Thrown at server/src/routes/issue-tree-control.ts:335 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of paperclipai/paperclip@01ad858492 (2026-08-18).
Data as JSON: /api/errors/34c86aa7be057ddd.
Report an issue: GitHub.