paperclipai/paperclip · error

Task bridge keys cannot use company-wide issue list APIs

Error message

Task bridge keys cannot use company-wide issue list APIs

What it means

403 from the company-wide issue list: the actor is a task bridge key, and task bridge keys are restricted from company-wide issue list APIs by policy.

Source

Thrown at server/src/routes/issues.ts:6086

        assigneeAgentId: input.assigneeAgentId,
      },
    );
  }

  async function normalizeIssueAssigneeAgentReference(
    companyId: string,
    rawAssigneeAgentId: string | null | undefined,
    options: { actorType?: string } = {},
  ) {
    if (rawAssigneeAgentId === undefined || rawAssigneeAgentId === null) {
      return rawAssigneeAgentId;
    }

    const raw = rawAssigneeAgentId.trim();
    if (raw.length === 0) {
      return rawAssigneeAgentId;
    }

    const resolved = await agentsSvc.resolveByReference(companyId, raw);
    if (resolved.ambiguous) {
      throw conflict("Agent shortname is ambiguous in this company. Use the agent ID.");
    }
    if (!resolved.agent) {
      throw notFound("Agent not found");
    }
    if (resolved.agent.status === "pending_approval") {
      throw conflict("Cannot assign work to pending approval agents");
    }
    if (resolved.agent.status === "terminated") {
      throw conflict("Cannot assign work to terminated agents");
    }
    // Agents must not route work to a paused peer/manager: the assignment is
    // accepted silently, nothing will ever run it, and the issue becomes an
    // invisible dead letter (e.g. escalation issues assigned to a paused
    // manager via the org chart). Humans may still assign to paused agents
    // deliberately — the pause state is visible in the UI and staging work

View on GitHub (pinned to 01ad858492)

Solutions

  1. 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).
  2. 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:5780 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/ea7565b5a3081813. Report an issue: GitHub.