paperclipai/paperclip · error

Only task-watchdog agent runs can create watchdog-discovered

Error message

Only task-watchdog agent runs can create watchdog-discovered product bug follow-ups

What it means

resolveTaskWatchdogProductBugFollowUp rejected a watchdog-discovered product bug follow-up request from a non-agent (board/user) actor; this special follow-up kind is reserved to task-watchdog agent runs.

Source

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

      enabled: true as const,
      watchdogParentIssueId: scope.watchdogIssueId,
    };
  }

  function mergeIssueBlockerIds(
    existing: unknown,
    blockerIssueId: string | null | undefined,
  ) {
    const current = Array.isArray(existing)
      ? existing.filter((value): value is string => typeof value === "string" && value.trim().length > 0)
      : [];
    return blockerIssueId ? [...new Set([...current, blockerIssueId])] : [...new Set(current)];
  }

  async function findCurrentSerializedWatchdogChild(parent: { id: string; companyId: string }) {
    const children = await db
      .select({
        id: issueRows.id,
        status: issueRows.status,
      })
      .from(issueRows)
      .where(and(
        eq(issueRows.companyId, parent.companyId),
        eq(issueRows.parentId, parent.id),
        inArray(issueRows.status, ["todo", "in_progress", "in_review", "blocked"]),
        isNull(issueRows.hiddenAt),
      ))
      .orderBy(asc(issueRows.issueNumber), asc(issueRows.createdAt), asc(issueRows.id));
    return children[0] ?? null;
  }

  async function blockWatchdogParentOnCurrentChild(input: {
    actor: ReturnType<typeof getActorInfo>;
    watchdogParentIssueId: string | null | undefined;
    currentChildIssueId: string | null | undefined;
  }) {

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:4782 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/31169956d91855ec. Report an issue: GitHub.