paperclipai/paperclip · error
Agent authentication required
Error message
Agent authentication required
What it means
403 guard in assertCanManageIssueApprovalLinks: the actor is not board and carries no agentId, so there is no authenticated agent identity to authorize approval-link management.
Solutions
- Include the required field(s) in the request path, query, or body as named by the error message, then retry.
- Check the API contract in packages/shared validators for the exact required shape of this endpoint.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at server/src/routes/issues.ts:3713 when the library encounters an invalid state.
Common situations: See trigger scenarios.
Understand the failure class
- Authentication and authorization failures — expired tokens, bad credentials, and missing scopes.
AI-assisted analysis of paperclipai/paperclip@3f1d897a7c (2026-08-18).
Data as JSON: /api/errors/5049e36aa1c56281.
Report an issue: GitHub.
Appendix: source
Thrown at server/src/routes/issues.ts:4771
kind: string;
status: string;
result?: unknown;
}>;
actor: ReturnType<typeof getActorInfo>;
source: string;
}) {
for (const interaction of input.interactions) {
await logActivity(db, {
companyId: input.issue.companyId,
actorType: input.actor.actorType,
actorId: input.actor.actorId,
agentId: input.actor.agentId,
runId: input.actor.runId,
agentApiKeyId: input.actor.agentApiKeyId,
action: "issue.thread_interaction_expired",
entityType: "issue",
entityId: input.issue.id,
details: {
identifier: input.issue.identifier ?? null,
interactionId: interaction.id,
interactionKind: interaction.kind,
interactionStatus: interaction.status,
source: input.source,
result: interaction.result ?? null,
},
});
}
}
async function queueExpiredInteractionReviewPathRecovery(input: {
issue: IssueRouteSnapshot;
interactions: Array<{ id: string }>;
actor: ReturnType<typeof getActorInfo>;
source: string;
}) {
if (View on GitHub (pinned to 3f1d897a7c)