{"record":{"id":"2fd5d9a69a819f6d","repo":"paperclipai/paperclip","slug":"approval-not-found","errorCode":null,"errorMessage":"Approval not found","messagePattern":"Approval not found","errorType":"http","errorClass":null,"httpStatus":404,"severity":"error","filePath":"server/src/routes/approvals.ts","lineNumber":290,"sourceCode":"    });\n\n    res.status(201).json(redactApprovalPayload(approval));\n  });\n\n  router.get(\"/approvals/:id/issues\", async (req, res) => {\n    const id = req.params.id as string;\n    const approval = await getAccessibleResource(req, res, svc.getById(id), \"Approval not found\");\n    if (!approval) return;\n    if (!(await assertApprovalAccessAllowed(req, res, approval.companyId))) return;\n    const issues = await issueApprovalsSvc.listIssuesForApproval(id);\n    res.json(issues);\n  });\n\n  router.post(\"/approvals/:id/approve\", validate(resolveApprovalSchema), async (req, res) => {\n    assertBoard(req);\n    const id = req.params.id as string;\n    if (!(await requireApprovalAccess(req, id))) {\n      res.status(404).json({ error: \"Approval not found\" });\n      return;\n    }\n    const decidedByUserId = req.actor.userId ?? \"board\";\n    const { approval, applied } = await svc.approve(id, decidedByUserId, req.body.decisionNote);\n\n    if (applied) {\n      const linkedIssues = await issueApprovalsSvc.listIssuesForApproval(approval.id);\n      const linkedIssueIds = linkedIssues.map((issue) => issue.id);\n      const primaryIssueId = linkedIssueIds[0] ?? null;\n      const lostReviewIssueIds = await lostReviewPathIssueIds(approval.companyId, linkedIssues);\n      const primaryReviewPathContext = primaryIssueId && lostReviewIssueIds.has(primaryIssueId)\n        ? approvalReviewPathContext(approval.id)\n        : null;\n\n      await logActivity(db, {\n        companyId: approval.companyId,\n        actorType: \"user\",\n        actorId: req.actor.userId ?? \"board\",","sourceCodeStart":272,"sourceCodeEnd":308,"githubUrl":"https://github.com/paperclipai/paperclip/blob/5716fe907e596ce73501408fc6efdb19fb61edf2/server/src/routes/approvals.ts#L272-L308","documentation":"Error \"Approval not found\" thrown in paperclipai/paperclip.","triggerScenarios":"Thrown at server/src/routes/approvals.ts:292 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify the approval id exists in this company; list approvals and use a valid one."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"5716fe907e596ce73501408fc6efdb19fb61edf2","analyzedAt":"2026-08-18T22:49:45.177Z","contentChangedAt":"2026-08-18T22:49:45.177Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}