paperclipai/paperclip · error
Execution workspace not found
Error message
Execution workspace not found
What it means
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.
Source
Thrown at server/src/routes/execution-workspaces.ts:171
res.json(overview);
});
router.get("/execution-workspaces/:id", async (req, res) => {
const id = req.params.id as string;
const workspace = await getAccessibleResource(req, res, svc.getById(id), "Execution workspace not found");
if (!workspace) return;
if (!(await assertExecutionWorkspaceReadAllowed(req, res, workspace.companyId))) return;
res.json(workspace);
});
router.get("/execution-workspaces/:id/close-readiness", async (req, res) => {
const id = req.params.id as string;
const workspace = await getAccessibleResource(req, res, svc.getById(id), "Execution workspace not found");
if (!workspace) return;
if (!(await assertExecutionWorkspaceReadAllowed(req, res, workspace.companyId))) return;
const readiness = await svc.getCloseReadiness(id);
if (!readiness) {
res.status(404).json({ error: "Execution workspace not found" });
return;
}
res.json(readiness);
});
/**
* Mint a single-use workspace login handoff for the calling board user.
*
* Board-only: the ticket carries a user identity, so an agent key — which has
* no user to sign in — must never be able to mint one. Nothing in the request
* body influences what the ticket is bound to; only the landing path is taken
* from the caller, and it is reduced to a same-origin path before signing.
*/
router.post("/execution-workspaces/:id/login-handoff", async (req, res) => {
const id = req.params.id as string;
assertBoard(req);
const workspace = await getAccessibleResource(req, res, svc.getById(id), "Execution workspace not found");
if (!workspace) return;View on GitHub (pinned to a7e689b3c3)
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.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at server/src/routes/execution-workspaces.ts:136 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of paperclipai/paperclip@a7e689b3c3 (2026-08-18).
Data as JSON: /api/errors/abb4bbafa53ee250.
Report an issue: GitHub.