paperclipai/paperclip · error
Board mutation requires trusted browser origin
Error message
Board mutation requires trusted browser origin
What it means
CSRF-style guard in boardMutationGuard: a board-session (browser) actor attempted a mutating request, but the Origin/Referer header did not match a trusted board origin. Only browser-session board mutations are checked — local_implicit, board_key, and cloud_tenant actor sources skip this check — so it fires specifically on cross-site or misconfigured-origin browser requests. Responds 403.
Source
Thrown at server/src/middleware/board-mutation-guard.ts:101
if (req.actor.type !== "board") {
next();
return;
}
// Local-trusted mode, board bearer keys, and trusted Cloud tenant calls are
// not browser-session requests.
// In these modes, origin/referer headers can be absent; do not block those mutations.
if (
req.actor.source === "local_implicit"
|| req.actor.source === "board_key"
|| req.actor.source === "cloud_tenant"
) {
next();
return;
}
if (!trustedBoardMutationOrigin(req)) {
res.status(403).json({ error: "Board mutation requires trusted browser origin" });
return;
}
next();
};
}
View on GitHub (pinned to 01ad858492)
Solutions
- Send the mutation from the trusted board UI origin; do not call it from an untrusted cross-origin context.
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at server/src/middleware/board-mutation-guard.ts:72 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of paperclipai/paperclip@01ad858492 (2026-09-10).
Data as JSON: /api/errors/34d7cce516d8d8b0.
Report an issue: GitHub.