{"record":{"id":"dd00158dbe7fbbf9","repo":"paperclipai/paperclip","slug":"task-watchdog-runs-must-create-issues-inside-the-w","errorCode":null,"errorMessage":"Task-watchdog runs must create issues inside the watched issue subtree.","messagePattern":"Task-watchdog runs must create issues inside the watched issue subtree\\.","errorType":"http","errorClass":null,"httpStatus":403,"severity":"error","filePath":"server/src/routes/issues.ts","lineNumber":4777,"sourceCode":"      id: string;\n      companyId: string;\n      status: string;\n      reviewPolicy?: IssueReviewPolicy | null;\n      createdByAgentId?: string | null;\n      createdByUserId?: string | null;\n    },\n    interaction: {\n      id: string;\n      kind: string;\n      status: string;\n      createdByAgentId?: string | null;\n      createdByUserId?: string | null;\n    },\n  ): Promise<{\n    restriction: IssueThreadInteractionCanonicalResolverPolicy | IssueThreadInteractionResolverRestriction;\n    binding: \"explicit\" | \"legacy\";\n  } | null> {\n    if (\n      issue.status !== \"in_review\"\n      || interaction.status !== \"pending\"\n      || (\n        interaction.kind !== \"request_confirmation\"\n        && interaction.kind !== \"request_checkbox_confirmation\"\n      )\n    ) return null;\n    if (!(await isIssueReviewVerdictInteraction(db, { issue, interaction }))) return null;\n    const requester = await resolveIssueReviewRequester(db, issue);\n    const binding = requester?.reviewInteractionId === interaction.id ? \"explicit\" : \"legacy\";\n    if (issue.reviewPolicy == null || issue.reviewPolicy === \"anyone\") {\n      return { restriction: \"anyone\", binding };\n    }\n    if (issue.reviewPolicy === \"human_only\") {\n      return { restriction: { policy: \"human_only\", source: \"issue_review\" }, binding };\n    }\n    return {\n      restriction: {","sourceCodeStart":4759,"sourceCodeEnd":4795,"githubUrl":"https://github.com/paperclipai/paperclip/blob/01ad8584922b5d85292b1723cae71fa0d9b07a19/server/src/routes/issues.ts#L4759-L4795","documentation":"403 from the task-watchdog subtree guard: a watchdog-scoped agent attempted to create an issue without a parent (or outside the watched issue subtree), which its scope does not permit.","triggerScenarios":"Thrown at server/src/routes/issues.ts:4613 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Correct the request so it satisfies the condition stated in the error message, then retry; see the throwing line in the named file for the exact check."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"01ad8584922b5d85292b1723cae71fa0d9b07a19","analyzedAt":"2026-08-18T22:49:45.177Z","contentChangedAt":"2026-08-18T22:49:45.177Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}