paperclipai/paperclip · error
Issue activity is outside this actor's authorization boundar
Error message
Issue activity is outside this actor's authorization boundary
What it means
Per-issue authorization gate in the activity routes: the 'issue:read' access decision for the referenced issue was denied (the actor cannot see this issue given its project/parent/assignee context), so its activity entries are withheld with a 403.
Source
Thrown at server/src/routes/activity.ts:210
assigneeUserId: string | null;
status: string;
}) {
const decision = await access.decide({
actor: req.actor,
action: "issue:read",
resource: {
type: "issue",
companyId: issue.companyId,
issueId: issue.id,
projectId: issue.projectId,
parentIssueId: issue.parentId,
assigneeAgentId: issue.assigneeAgentId,
assigneeUserId: issue.assigneeUserId,
status: issue.status,
},
});
if (decision.allowed) return true;
res.status(403).json({ error: "Issue activity is outside this actor's authorization boundary" });
return false;
}
async function resolveIssueByRef(rawId: string) {
const identifier = normalizeIssueIdentifier(rawId);
if (identifier) {
return issueSvc.getByIdentifier(identifier);
}
return issueSvc.getById(rawId);
}
router.get("/companies/:companyId/activity", async (req, res) => {
const companyId = req.params.companyId as string;
assertCompanyAccess(req, companyId);
if (!(await assertCompanyScopeReadAllowed(req, res, companyId))) return;
const filters = {
companyId,View on GitHub (pinned to a7e689b3c3)
Solutions
- Request issue activity only for issues within the actor's authorized company scope.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at server/src/routes/activity.ts:210 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/3001e4352afcc657.
Report an issue: GitHub.