{"record":{"id":"dc218fd3a7dd06e8","repo":"anomalyco/sst","slug":"invalid-worker-definition-for-the-name-worker","errorCode":null,"errorMessage":"Invalid worker definition for the \"${name}\" Worker","messagePattern":"Invalid worker definition for the \"(.+?)\" Worker","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"platform/src/components/cloudflare/helpers/worker-builder.ts","lineNumber":55,"sourceCode":"      const worker = new Worker(\n        ...transform(\n          argsTransform,\n          name,\n          {\n            accountId,\n            ...definition,\n          },\n          opts || {},\n        ),\n      );\n\n      return {\n        getWorker: () => worker,\n        script: worker.nodes.worker,\n      };\n    }\n\n    throw new Error(`Invalid worker definition for the \"${name}\" Worker`);\n  });\n}\n","sourceCodeStart":37,"sourceCodeEnd":58,"githubUrl":"https://github.com/anomalyco/sst/blob/a0bd20f762883e72a35caccb4896c42ce5b3f707/platform/src/components/cloudflare/helpers/worker-builder.ts#L37-L58","documentation":"workerBuilder accepts a worker definition as a linkable resource or a function returning one, and derives the script from `worker.nodes.worker`. If the provided object exposes neither a recognized worker node nor the expected shape, SST cannot compile it into a Worker script and throws.","triggerScenarios":"Passing an object to a Worker/Cron/Queue `worker` (or handler) property that is neither a valid SST linkable worker resource nor a function returning one — e.g. a plain object, a wrong component type, or a resource lacking `nodes.worker`.","commonSituations":"Passing the result of a different component (e.g. a Bucket or Function) where a Cloudflare Worker resource is expected; typos in a custom resource factory; using an SDK/resource version whose `nodes` shape differs.","solutions":["Pass a valid `sst.cloudflare.Worker` component or a function returning the expected worker shape.","Inspect the value you pass — it must expose `nodes.worker` (or be a linkable worker).","Update the SST SDK/platform versions so resource shapes match what workerBuilder expects."],"exampleFix":"// before\nnew sst.cloudflare.Cron(app, \"Cron\", {\n  schedule: \"0 * * * *\",\n  worker: bucket, // wrong resource type\n});\n// after\nconst worker = new sst.cloudflare.Worker(app, \"CronWorker\", { handler: \"./src/cron.ts\" });\nnew sst.cloudflare.Cron(app, \"Cron\", {\n  schedule: \"0 * * * *\",\n  worker,\n});","handlingStrategy":"type-guard","validationCode":"const isValidWorker = (w: unknown) =>\n  !!w && typeof w === \"object\" && ((\"nodes\" in w && !!(w as any).nodes?.worker) || typeof w === \"function\");\nif (!isValidWorker(workerArgs)) throw new Error(\"Pass a sst.cloudflare.Worker or function returning one\");","typeGuard":"const isWorkerDef = (w: unknown): w is { nodes: { worker: unknown } } | (() => any) =>\n  typeof w === \"function\" ||\n  (!!w && typeof w === \"object\" && \"nodes\" in w && !!(w as any).nodes?.worker);","tryCatchPattern":"try {\n  new sst.cloudflare.Cron(app, \"Cron\", { schedule: \"0 * * * *\", worker });\n} catch (e) {\n  if (String(e).includes(\"Invalid worker definition\")) console.error(\"worker must be a Cloudflare Worker resource or factory\");\n  else throw e;\n}","preventionTips":["Only pass `sst.cloudflare.Worker` components (or factories returning them) as worker args.","Don't pass other resource types (Bucket, Queue, etc.) as workers.","Keep SST platform and SDK versions in sync."],"tags":["cloudflare","worker","invalid-argument","type-error","sst-config"],"backgroundTag":"invalid-resource-definition","analyzedSha":"a0bd20f762883e72a35caccb4896c42ce5b3f707","analyzedAt":"2026-08-30T11:26:00.383Z","schemaVersion":2},"datasetVersion":"2026-08-30T13:17:10.514Z"}