paperclipai/paperclip · error
Only board users can view feedback traces
Error message
Only board users can view feedback traces
What it means
403 guard on GET /issues/:id/feedback-traces. Fires when the actor is not a board user; feedback trace records (AI feedback diagnostics) are board-only and never exposed to agent API keys.
Source
Thrown at server/src/routes/issues.ts:12728
current,
req.body.selectedClientKeys,
)
: true;
if (!suggestedTaskEffectsAuthorized) return;
const actor = getActorInfo(req);
if (current.kind === "request_confirmation" && current.payload.toolAction) {
if (!opts.approveToolActionRequest) throw unprocessable("Tool review resolution is unavailable");
await opts.approveToolActionRequest({ companyId: issue.companyId, issueId: issue.id, interactionId: current.id, actionRequestId: current.payload.toolAction.actionRequestId, rememberAction: req.body.rememberAction === true, actor: { agentId: actor.agentId, userId: actor.actorType === "user" ? actor.actorId : null } });
res.json(await interactionSvc.getById(current.id));
return;
}
if (req.body.rememberAction) throw unprocessable("Remembered permission is only supported for tool reviews");
const { interaction, createdIssues, continuationIssue } = await interactionSvc.acceptInteraction(issue, interactionId, req.body, {
agentId: actor.agentId,
runId: actor.runId,
userId: actor.actorType === "user" ? actor.actorId : null,
resolverPolicyRestriction: resolutionAuthorization.resolverPolicyRestriction,
suggestedTaskEffectsAuthorized,
});
const toolAction = interaction.payload && typeof interaction.payload === "object"
? (interaction.payload as { toolAction?: { actionRequestId?: unknown } }).toolAction
: null;
const secretProposal = interaction.payload && typeof interaction.payload === "object"
? (interaction.payload as { secretProposal?: { proposalId?: unknown; configPath?: unknown } }).secretProposal
: null;
let continuationInteraction = interaction;
if (
interaction.kind === "request_confirmation"
&& interaction.status === "accepted"
&& typeof toolAction?.actionRequestId === "string"
&& opts.approveToolActionRequest
) {
const approvalResult = await opts.approveToolActionRequest({
companyId: issue.companyId,
issueId: issue.id,View on GitHub (pinned to 01ad858492)
Solutions
- This is an authorization rule, not a bug: perform the action with an actor that satisfies the stated constraint (board user, the owning agent, or an in-scope resource).
- If access should be allowed, verify the actor's credentials/company scope and the resource's ownership before retrying.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at server/src/routes/issues.ts:11716 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of paperclipai/paperclip@01ad858492 (2026-08-18).
Data as JSON: /api/errors/98111fbc9962dfcc.
Report an issue: GitHub.