{"record":{"id":"6d1f12c0d72b820a","repo":"windmill-labs/windmill","slug":"trigger-kind-trigger-kind-not-supported-yet","errorCode":null,"errorMessage":"trigger kind '${trigger.kind}' not supported yet","messagePattern":"trigger kind '(.+?)' not supported yet","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"frontend/src/lib/components/triggers/workspaceTriggersList.ts","lineNumber":409,"sourceCode":"/**\n * Create a trigger in its disabled state — the semantics differ per kind\n * (schedules use `enabled: false`, every other kind uses `mode: 'disabled'`)\n * and are encoded here once so importers can't get them wrong.\n */\nexport async function createWorkspaceTriggerDisabled(\n\tworkspace: string,\n\ttrigger: {\n\t\tkind: string\n\t\tpath: string\n\t\tscript_path: string\n\t\tis_flow: boolean\n\t\tsummary?: string | null\n\t\tconfig?: Record<string, any> | null\n\t},\n\topts: { hasEeLicense: boolean }\n): Promise<unknown> {\n\tconst def = TRIGGER_KINDS[trigger.kind as WorkspaceTriggerKind]\n\tif (!def) throw new Error(`trigger kind '${trigger.kind}' not supported yet`)\n\tif (def.eeOnly && !opts.hasEeLicense) {\n\t\tthrow new Error(`trigger kind '${trigger.kind}' requires Enterprise`)\n\t}\n\tif (def.provisionsOnCreate) {\n\t\tthrow new Error(\n\t\t\t`${def.badge} triggers manage cloud subscriptions at creation — fill in the imported resource, then re-create this trigger manually`\n\t\t)\n\t}\n\t// Remote input: only the allowlisted portable slice may reach the create call.\n\tconst config = portableTriggerConfig(trigger.kind, trigger.config)\n\tif (trigger.kind === 'schedule') {\n\t\t// Spread the portable config first so behavioral settings survive the\n\t\t// import (cron_version, retry, failure/recovery/success handlers,\n\t\t// no_flow_overlap, …) — restoring only cron+timezone would silently\n\t\t// change the schedule's semantics once re-enabled.\n\t\treturn ScheduleService.createSchedule({\n\t\t\tworkspace,\n\t\t\trequestBody: {","sourceCodeStart":391,"sourceCodeEnd":427,"githubUrl":"https://github.com/windmill-labs/windmill/blob/e474e8803ce2ff5c2df09a58dab51d45f5c922ca/frontend/src/lib/components/triggers/workspaceTriggersList.ts#L391-L427","documentation":"createWorkspaceTriggerDisabled validates a trigger coming from a project/template install against the TRIGGER_KINDS registry before creating it. If the trigger's kind is not a known WorkspaceTriggerKind, this error is thrown. It protects the installer from attempting to create trigger kinds the current build does not support.","triggerScenarios":"installProject calls createWorkspaceTriggerDisabled with a trigger whose `kind` string is not a key of TRIGGER_KINDS — new kinds from a newer export, typos in a project template, or renamed kinds.","commonSituations":"Importing a project authored on a newer Windmill version; hand-edited project/template YAML with an invalid kind; frontend/backend version skew where one side knows a kind the other does not.","solutions":["Check the kind in the error message against TRIGGER_KINDS keys and fix the project/template definition.","Upgrade Windmill so both sides support the trigger kind.","Skip or warn on unsupported triggers during install instead of failing the whole project.","If the kind was renamed, update the template to the new kind name."],"exampleFix":"// before\nconst def = TRIGGER_KINDS[trigger.kind as WorkspaceTriggerKind]\nif (!def) throw new Error(`trigger kind '${trigger.kind}' not supported yet`)\n// after\nconst def = TRIGGER_KINDS[trigger.kind as WorkspaceTriggerKind]\nif (!def) {\n  console.warn(`trigger kind '${trigger.kind}' not supported yet; skipping during install`)\n  return null\n}","handlingStrategy":"validation","validationCode":"function isSupportedWorkspaceTriggerKind(kind: string): kind is WorkspaceTriggerKind {\n  return kind in TRIGGER_KINDS\n}\n// before install:\nconst supported = triggers.filter((t) => isSupportedWorkspaceTriggerKind(t.kind))","typeGuard":"function isWorkspaceTriggerKind(k: string): k is WorkspaceTriggerKind {\n  return k in TRIGGER_KINDS\n}","tryCatchPattern":"try {\n  await createWorkspaceTriggerDisabled(trigger, { hasEeLicense })\n} catch (e) {\n  if (String(e).includes('not supported yet')) {\n    warnings.push(`Skipped ${trigger.kind}: unsupported in this version`)\n    return null\n  }\n  throw e\n}","preventionTips":["Pre-filter imported triggers against Object.keys(TRIGGER_KINDS) before install","Keep project templates generated by a matching Windmill version","Warn instead of hard-failing the whole install on one unknown kind","Update templates after kind renames"],"tags":["triggers","project-install","validation"],"backgroundTag":"unsupported-trigger-kind","analyzedSha":"e474e8803ce2ff5c2df09a58dab51d45f5c922ca","analyzedAt":"2026-09-03T12:38:19.024Z","contentChangedAt":"2026-09-03T12:38:19.024Z","schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}