{"record":{"id":"d0839a90e9e9f1d5","repo":"paperclipai/paperclip","slug":"skill-not-found","errorCode":null,"errorMessage":"Skill not found","messagePattern":"Skill not found","errorType":"http","errorClass":null,"httpStatus":404,"severity":"error","filePath":"server/src/routes/company-skills.ts","lineNumber":345,"sourceCode":"      folderId: firstQueryString(req.query.folderId),\n      includeSubtree: optionalQueryBoolean(req.query.includeSubtree),\n    }));\n    res.json(result);\n  });\n\n  router.get(\"/companies/:companyId/skills/categories\", async (req, res) => {\n    const companyId = req.params.companyId as string;\n    assertCompanyAccess(req, companyId);\n    res.json(await svc.categoryCounts(companyId));\n  });\n\n  router.get(\"/companies/:companyId/skills/:skillId\", async (req, res) => {\n    const companyId = req.params.companyId as string;\n    const skillId = req.params.skillId as string;\n    assertCompanyAccess(req, companyId);\n    const result = await svc.detail(companyId, skillId, skillActor(req));\n    if (!result) {\n      res.status(404).json({ error: \"Skill not found\" });\n      return;\n    }\n    res.json(result);\n  });\n\n  router.get(\"/companies/:companyId/skills/:skillId/fork-precheck\", async (req, res) => {\n    const companyId = req.params.companyId as string;\n    const skillId = req.params.skillId as string;\n    assertCompanyAccess(req, companyId);\n    const result = await svc.forkPrecheck(companyId, skillId, skillActor(req));\n    if (!result) {\n      res.status(404).json({ error: \"Skill not found\" });\n      return;\n    }\n    res.json(result);\n  });\n\n  router.get(\"/companies/:companyId/skills/:skillId/versions\", async (req, res) => {","sourceCodeStart":327,"sourceCodeEnd":363,"githubUrl":"https://github.com/paperclipai/paperclip/blob/120ae5428fa29bee300bcf806491cd4d965fbb7c/server/src/routes/company-skills.ts#L327-L363","documentation":"Error \"Skill not found\" thrown in paperclipai/paperclip.","triggerScenarios":"Thrown at server/src/routes/company-skills.ts:345 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify the id in the request path or body refers to an existing record in this company; re-list the parent collection to get a valid id.","Check that the record was not deleted or archived, and that the request is scoped to the correct companyId."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"120ae5428fa29bee300bcf806491cd4d965fbb7c","analyzedAt":"2026-08-18T22:49:45.177Z","contentChangedAt":"2026-08-18T22:49:45.177Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}