{"record":{"id":"fef6ccc83d7e2e91","repo":"paperclipai/paperclip","slug":"no-handler-registered-for-job-params-job-jobkey","errorCode":null,"errorMessage":"No handler registered for job \"${params.job.jobKey}\"","messagePattern":"No handler registered for job \"(.+?)\"","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/plugins/sdk/src/worker-rpc-host.ts","lineNumber":1861,"sourceCode":"    }\n\n    if (plugin.definition.onConfigChanged) {\n      await plugin.definition.onConfigChanged(params.config, {\n        companyId: incomingCompanyId,\n      });\n    }\n  }\n\n  async function handleOnEvent(params: OnEventParams): Promise<void> {\n    const event = params.event;\n\n    for (const registration of eventHandlers) {\n      // Check event type match\n      const exactMatch = registration.name === event.eventType;\n      const wildcardPluginAll =\n        registration.name === \"plugin.*\" &&\n        event.eventType.startsWith(\"plugin.\");\n      const wildcardPluginOne =\n        registration.name.endsWith(\".*\") &&\n        event.eventType.startsWith(registration.name.slice(0, -1));\n\n      if (!exactMatch && !wildcardPluginAll && !wildcardPluginOne) continue;\n\n      // Check filter\n      if (registration.filter && !allowsEvent(registration.filter, event)) continue;\n\n      try {\n        await registration.fn(event);\n      } catch (err) {\n        // Log error but continue processing other handlers so one failing\n        // handler doesn't prevent the rest from running.\n        notifyHost(\"log\", {\n          level: \"error\",\n          message: `Event handler for \"${registration.name}\" failed: ${\n            err instanceof Error ? err.message : String(err)\n          }`,","sourceCodeStart":1843,"sourceCodeEnd":1879,"githubUrl":"https://github.com/paperclipai/paperclip/blob/01ad8584922b5d85292b1723cae71fa0d9b07a19/packages/plugins/sdk/src/worker-rpc-host.ts#L1843-L1879","documentation":"Dispatch guard in the worker RPC host (startWorkerRpcHost / handleRunJob): the host asked the plugin worker to run a job whose jobKey was never registered via the job-handler registration API. The requested background job simply has no implementation in this plugin, so the RPC call fails rather than silently no-oping.","triggerScenarios":"Thrown at packages/plugins/sdk/src/worker-rpc-host.ts:1810 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Register a job handler for the job key, or use a registered job key."],"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-14T00:17:10.932Z"}