{"record":{"id":"7daad3b0018cee26","repo":"paperclipai/paperclip","slug":"issue-follow-up-blocked-by-active-subtree-pause-ho","errorCode":null,"errorMessage":"Issue follow-up blocked by active subtree pause hold","messagePattern":"Issue follow-up blocked by active subtree pause hold","errorType":"http","errorClass":null,"httpStatus":409,"severity":"error","filePath":"server/src/routes/issues.ts","lineNumber":5224,"sourceCode":"    });\n    return false;\n  }\n\n  async function loadWorkProductRunAttribution(runId: string) {\n    return await db\n      .select({\n        id: heartbeatRuns.id,\n        companyId: heartbeatRuns.companyId,\n        agentId: heartbeatRuns.agentId,\n        agentCompanyId: agents.companyId,\n      })\n      .from(heartbeatRuns)\n      .innerJoin(agents, eq(heartbeatRuns.agentId, agents.id))\n      .where(eq(heartbeatRuns.id, runId))\n      .then((rows) => rows[0] ?? null);\n  }\n\n  async function resolveWorkProductCreatedByRunId(\n    req: Request,\n    res: Response,\n    companyId: string,\n    input: { createdByRunId?: string | null },\n    mode: \"create\" | \"update\",\n  ): Promise<string | null | undefined> {\n    const hasCreatedByRunId = Object.prototype.hasOwnProperty.call(input, \"createdByRunId\");\n    if (mode === \"update\" && !hasCreatedByRunId) return undefined;\n\n    const requestedRunId = input.createdByRunId ?? null;\n    if (req.actor.type === \"agent\") {\n      const actorRunId = req.actor.runId?.trim() || null;\n      if (requestedRunId && requestedRunId !== actorRunId) {\n        res.status(403).json({ error: \"createdByRunId must match the authenticated agent run\" });\n        return undefined;\n      }\n      if (!actorRunId) return requestedRunId;\n      const run = await loadWorkProductRunAttribution(actorRunId);","sourceCodeStart":5206,"sourceCodeEnd":5242,"githubUrl":"https://github.com/paperclipai/paperclip/blob/01ad8584922b5d85292b1723cae71fa0d9b07a19/server/src/routes/issues.ts#L5206-L5242","documentation":"409 guard in assertExplicitResumeIntentAllowed: treeControlSvc reports an active subtree pause hold covering this issue, which blocks any follow-up action until the hold clears.","triggerScenarios":"Thrown at server/src/routes/issues.ts:5068 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":"retry","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-14T00:17:10.932Z"}