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

  1. Include the required field(s) in the request path, query, or body as named by the error message, then retry.
  2. 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


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)