paperclipai/paperclip · error
Task-watchdog runs can only mutate the watched issue subtree
Error message
Task-watchdog runs can only mutate the watched issue subtree.
What it means
resolveTaskWatchdogMutationScope classified the run as a task-watchdog, and the target issue falls outside the watched subtree the watchdog run is confined to; watchdog runs may only mutate their watched subtree.
Source
Thrown at server/src/routes/issues.ts:4116
},
scope: {
issueId: issue.id,
projectId: issue.projectId,
parentIssueId: issue.parentId,
assigneeAgentId: issue.assigneeAgentId,
assigneeUserId: issue.assigneeUserId,
},
});
}
/**
* Map an authorization denial onto the issue-write copy contract (plan §6).
*
* The two responsible-user ceiling codes are the most specific signal, so they
* win. Actor-class walls (low-trust, skill-test, task-bridge scopes) stay shut
* by design and get their own copy. Everything else reaching a write channel is
* a visibility denial, because the default-open rule puts `issue:read` structurally
* upstream of every standard-trust write.
*/
function issueWriteDenialCodeForDecision(
decision: Awaited<ReturnType<typeof decideIssueAccess>>,
): IssueWriteDenialCode {
if (decision.code) return issueWriteDenialCodeForResponsibleUserDenial(decision.code);
if (decision.reason === "deny_low_trust_boundary" || decision.reason === "deny_policy_restricted") {
return "issue_write_actor_class_excluded";
}
return "issue_write_not_visible";
}
/**
* Best-effort display names for denial copy. Denials are rare, so one extra
* query buys an error that names who can act instead of printing raw uuids.
* Any failure degrades to the copy contract's generic nouns.
*/
async function issueWriteDenialLabels(
req: Request,View on GitHub (pinned to 01ad858492)
Solutions
- 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).
- 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:3952 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/4e2bbc278bff5b3e.
Report an issue: GitHub.