paperclipai/paperclip · error

Only board users can interrupt active runs from issue commen

Error message

Only board users can interrupt active runs from issue comments

What it means

403 guard on interrupt handling. Fires when an interrupt was requested with a valid comment but the actor is an agent; only board users may interrupt an in-progress run via an issue comment.

Source

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

      await assertIssueEnvironmentSelection(sourceIssue.companyId, childBody.executionWorkspaceSettings?.environmentId);
    }

    const actor = getActorInfo(req);
    const normalizedChildren = [];
    for (const child of requestedChildren) {
      const executionPolicy = applyActorMonitorScheduledBy(
        normalizeIssueExecutionPolicy(child.executionPolicy),
        actor.actorType,
      );
      await assertCanManageIssueMonitor(access, req, sourceIssue.companyId, child.assigneeAgentId ?? null, Boolean(executionPolicy?.monitor));
      const childIssueId = randomUUID();
      const sourceTrust = await sourceTrustForActorWrite({
        id: childIssueId,
        companyId: sourceIssue.companyId,
        projectId: child.projectId ?? sourceIssue.projectId ?? null,
        executionPolicy,
      }, actor);
      normalizedChildren.push({
        ...child,
        id: childIssueId,
        executionPolicy,
        ...(sourceTrust ? { sourceTrust } : {}),
        createdByAgentId: actor.agentId,
        createdByUserId: actor.actorType === "user" ? actor.actorId : null,
        actorRunId: actor.runId,
        actorResponsibleUserId: authenticatedActorResponsibleUserId(req),
        trustExplicitResponsibleUserId: actor.actorType === "user",
        actorAgentId: actor.agentId,
        actorUserId: actor.actorType === "user" ? actor.actorId : null,
      });
    }
    const serializationContext = await resolveWatchdogFollowUpSerializationContext(req, sourceIssue);
    const existingSerializedChild = serializationContext
      ? await findCurrentSerializedWatchdogChild(sourceIssue)
      : null;
    const serializedBlockedChildIds = new Set<string>();

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:9216 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/2eb06f01d0441a76. Report an issue: GitHub.