{"record":{"id":"c92645f6db9502ef","repo":"paperclipai/paperclip","slug":"routine-run-run-id-did-not-create-or-coalesce-a","errorCode":null,"errorMessage":"Routine run ${run.id} did not create or coalesce an execution issue","messagePattern":"Routine run (.+?) did not create or coalesce an execution issue","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"server/src/services/pipelines.ts","lineNumber":3011,"sourceCode":"          variables,\n        },\n        variables,\n        descriptionAppendix: [\n          buildPipelineAutomationIssueTitlePrefix(detail),\n          buildPipelineStageEntryPreamble(detail),\n          buildPipelineCaseContextMarkdown({\n            ...detail,\n            breakdownMechanics,\n            triggeringEventId: execution.triggeringEventId,\n            outputSummaries,\n          }),\n        ].filter(Boolean).join(\"\\n\\n\"),\n      });\n      if (!run.linkedIssueId) {\n        const failureReason = typeof run.failureReason === \"string\" && run.failureReason.trim().length > 0\n          ? run.failureReason.trim()\n          : null;\n        throw new Error(\n          failureReason\n            ? `Routine run ${run.id} failed: ${failureReason}`\n            : `Routine run ${run.id} did not create or coalesce an execution issue`,\n        );\n      }\n      const [updated] = await db\n        .update(pipelineAutomationExecutions)\n        .set({\n          status: \"succeeded\",\n          executionIssueId: run.linkedIssueId,\n          error: null,\n          updatedAt: nowDate(),\n        })\n        .where(eq(pipelineAutomationExecutions.id, execution.id))\n        .returning();\n      await db\n        .insert(pipelineCaseIssueLinks)\n        .values({","sourceCodeStart":2993,"sourceCodeEnd":3029,"githubUrl":"https://github.com/paperclipai/paperclip/blob/120ae5428fa29bee300bcf806491cd4d965fbb7c/server/src/services/pipelines.ts#L2993-L3029","documentation":"Invariant check after a routine run finishes: every run must produce (or coalesce into) a linked issue, but run.linkedIssueId is still null. Fires when issue creation was skipped, failed silently, or the run short-circuited before the issue step; the run lifecycle logic is at fault.","triggerScenarios":"Thrown at server/src/services/pipelines.ts:3011 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check routine execution configuration and logs to learn why no execution issue was created or coalesced, then retry."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"120ae5428fa29bee300bcf806491cd4d965fbb7c","analyzedAt":"2026-08-18T22:49:45.177Z","contentChangedAt":"2026-08-18T22:49:45.177Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}