{"record":{"id":"a15bb0356f209fd1","repo":"paperclipai/paperclip","slug":"job-not-found-jobid","errorCode":null,"errorMessage":"Job not found: ${jobId}","messagePattern":"Job not found: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"server/src/services/plugin-job-scheduler.ts","lineNumber":445,"sourceCode":"        jobLog.error(\n          { err: err instanceof Error ? err.message : String(err) },\n          \"failed to advance schedule pointer\",\n        );\n      }\n    }\n  }\n\n  // -----------------------------------------------------------------------\n  // Core: manual trigger\n  // -----------------------------------------------------------------------\n\n  async function triggerJob(\n    jobId: string,\n    trigger: \"manual\" | \"retry\" = \"manual\",\n  ): Promise<TriggerJobResult> {\n    const job = await jobStore.getJobById(jobId);\n    if (!job) {\n      throw new Error(`Job not found: ${jobId}`);\n    }\n\n    if (job.status !== \"active\") {\n      throw new Error(\n        `Job \"${job.jobKey}\" is not active (status: ${job.status})`,\n      );\n    }\n\n    // Overlap prevention\n    if (activeJobs.has(jobId)) {\n      throw new Error(\n        `Job \"${job.jobKey}\" is already running — cannot trigger while in progress`,\n      );\n    }\n\n    // Also check DB for running runs (defensive — covers multi-instance)\n    const existingRuns = await db\n      .select()","sourceCodeStart":427,"sourceCodeEnd":463,"githubUrl":"https://github.com/paperclipai/paperclip/blob/120ae5428fa29bee300bcf806491cd4d965fbb7c/server/src/services/plugin-job-scheduler.ts#L427-L463","documentation":"triggerJob looked up the job by id in the plugin job store and found no record, meaning the jobId does not exist (or was deleted) at trigger time.","triggerScenarios":"Thrown at server/src/services/plugin-job-scheduler.ts:445 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify the job ID; list registered jobs for the plugin and use a valid jobId."],"exampleFix":null,"handlingStrategy":"validation","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-14T00:17:10.932Z"}