{"record":{"id":"abb4bbafa53ee250","repo":"paperclipai/paperclip","slug":"execution-workspace-not-found","errorCode":null,"errorMessage":"Execution workspace not found","messagePattern":"Execution workspace not found","errorType":"http","errorClass":null,"httpStatus":404,"severity":"error","filePath":"server/src/routes/execution-workspaces.ts","lineNumber":171,"sourceCode":"    res.json(overview);\n  });\n\n  router.get(\"/execution-workspaces/:id\", async (req, res) => {\n    const id = req.params.id as string;\n    const workspace = await getAccessibleResource(req, res, svc.getById(id), \"Execution workspace not found\");\n    if (!workspace) return;\n    if (!(await assertExecutionWorkspaceReadAllowed(req, res, workspace.companyId))) return;\n    res.json(workspace);\n  });\n\n  router.get(\"/execution-workspaces/:id/close-readiness\", async (req, res) => {\n    const id = req.params.id as string;\n    const workspace = await getAccessibleResource(req, res, svc.getById(id), \"Execution workspace not found\");\n    if (!workspace) return;\n    if (!(await assertExecutionWorkspaceReadAllowed(req, res, workspace.companyId))) return;\n    const readiness = await svc.getCloseReadiness(id);\n    if (!readiness) {\n      res.status(404).json({ error: \"Execution workspace not found\" });\n      return;\n    }\n    res.json(readiness);\n  });\n\n  /**\n   * Mint a single-use workspace login handoff for the calling board user.\n   *\n   * Board-only: the ticket carries a user identity, so an agent key — which has\n   * no user to sign in — must never be able to mint one. Nothing in the request\n   * body influences what the ticket is bound to; only the landing path is taken\n   * from the caller, and it is reduced to a same-origin path before signing.\n   */\n  router.post(\"/execution-workspaces/:id/login-handoff\", async (req, res) => {\n    const id = req.params.id as string;\n    assertBoard(req);\n    const workspace = await getAccessibleResource(req, res, svc.getById(id), \"Execution workspace not found\");\n    if (!workspace) return;","sourceCodeStart":153,"sourceCodeEnd":189,"githubUrl":"https://github.com/paperclipai/paperclip/blob/a7e689b3c35347b529cb9f54c9b9a8575a3dcab6/server/src/routes/execution-workspaces.ts#L153-L189","documentation":"404 sentinel passed to getAccessibleResource: the execution workspace lookup by id found no row, so the referenced workspace does not exist or is out of the actor's reach.","triggerScenarios":"Thrown at server/src/routes/execution-workspaces.ts:136 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":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"a7e689b3c35347b529cb9f54c9b9a8575a3dcab6","analyzedAt":"2026-08-18T22:49:45.177Z","contentChangedAt":"2026-08-18T22:49:45.177Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}