paperclipai/paperclip · error
Approvals are outside this actor's authorization boundary
Error message
Approvals are outside this actor's authorization boundary
What it means
Error "Approvals are outside this actor's authorization boundary" thrown in paperclipai/paperclip.
Source
Thrown at server/src/routes/approvals.ts:171
}
async function requireApprovalAccess(req: Request, id: string) {
const approval = await svc.getById(id);
if (!approval || !hasCompanyAccess(req, approval.companyId)) {
return null;
}
assertCompanyAccess(req, approval.companyId);
return approval;
}
async function assertApprovalAccessAllowed(req: Request, res: any, companyId: string) {
const decision = await access.decide({
actor: req.actor,
action: "company_scope:read",
resource: { type: "company", companyId },
});
if (decision.allowed) return true;
res.status(403).json({ error: "Approvals are outside this actor's authorization boundary" });
return false;
}
async function assertApprovalMutationAllowedByRunContext(req: Request, res: any, companyId: string) {
if (req.actor.type !== "agent") return true;
const runId = req.actor.runId?.trim();
if (!runId || !req.actor.agentId) return true;
const run = await db
.select({
id: heartbeatRuns.id,
companyId: heartbeatRuns.companyId,
agentId: heartbeatRuns.agentId,
contextSnapshot: heartbeatRuns.contextSnapshot,
})
.from(heartbeatRuns)
.where(eq(heartbeatRuns.id, runId))
.then((rows) => rows[0] ?? null);View on GitHub (pinned to 5716fe907e)
Solutions
- Access approvals only within the actor's authorized company scope.
When it happens
Trigger: Thrown at server/src/routes/approvals.ts:172 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of paperclipai/paperclip@5716fe907e (2026-08-18).
Data as JSON: /api/errors/91194ca37db3b994.
Report an issue: GitHub.