windmill-labs/windmill · error · Error
Missing trigger information
Error message
Missing trigger information
What it means
In frontend/src/lib/components/DeployWorkspace.svelte:287, rec() computes dependencies of a deploy item. For kind 'trigger' it needs additionalInformation.triggers (populated by the deploy query); when that is absent it throws "Missing trigger information" because it cannot resolve the trigger's dependency (path/schedule/etc.).
Source
Thrown at frontend/src/lib/components/DeployWorkspace.svelte:287
}
return []
} else if (typeof obj == 'object' && obj != null) {
return Object.values(obj).flatMap((x) => recObj(x))
} else {
return []
}
}
return [
...recObj(res.value),
...(res.resource_type == 'ai_agent' ? agentResourceDependencies(res.value) : []),
{ kind: 'resource_type' as Kind, path: res.resource_type }
]
} else if (kind == 'trigger') {
if (additionalInformation?.triggers) {
return getTriggerDependency(additionalInformation.triggers.kind, path, $workspaceStore!)
}
throw new Error('Missing trigger information')
} else if (kind == 'script') {
const imports = await WorkspaceService.getImports({
workspace: $workspaceStore!,
importerPath: path
})
return imports.map((importedPath) => ({ kind: 'script' as Kind, path: importedPath }))
}
return []
}
let toProcess = [{ kind, path }]
let processedSet = new Set<string>()
let processed: { kind: Kind; path: string }[] = []
while (toProcess.length > 0) {
const { kind, path } = toProcess.pop()!
const key = `${kind}:${path}`
if (processedSet.has(key)) {
continue
}View on GitHub (pinned to e474e8803c)
Solutions
- Refresh the deployment view so additionalInformation is re-fetched
- Verify the trigger still exists in the workspace
- Re-select the trigger in the deploy list so its metadata loads
- Report if it reproduces on a fresh deploy preview
Defensive patterns
Strategy: try-catch
Validate before calling
if (kind === 'trigger' && !additionalInformation?.triggers?.kind) {
throw new Error(`Trigger ${path} is missing dependency metadata — refresh the deploy view`);
} Type guard
function hasTriggerInfo(info: unknown): info is { triggers: { kind: string } } {
return !!info && typeof info === 'object' && 'triggers' in info && !!(info as any).triggers?.kind;
} Try / catch
try {
deps = await rec(item);
} catch (e) {
if (e.message === 'Missing trigger information') {
sendUserToast('Trigger metadata missing — reload the deployment view', true);
return;
}
throw e;
} Prevention
- Refresh the deploy preview before deploying after external changes
- Verify the trigger still exists before computing dependencies
- Re-fetch item metadata if the deploy view has been open a long time
When it happens
Trigger: Deploying a trigger whose dependency data was not loaded into additionalInformation.triggers — e.g. the trigger item came from a stale/partial deployment preview, or the trigger was deleted/changed server-side between listing and deploy.
Common situations: Stale deploy view after the trigger was deleted in another tab; partial failed fetch of trigger details; deploying via an item shape that predates the triggers field.
Related errors
- error (from getWorkspaceMutationTargetError)
- Active instance ${activeName} not found in config
- No local file for ${scriptPath} to infer its S3Object parame
- Script '${path}' has a deployment error and cannot be run:\n
- No actual user message found to restart from
AI-assisted analysis of windmill-labs/windmill@e474e8803c (2026-09-03).
Data as JSON: /api/errors/028cfd3f87b1f56b.
Report an issue: GitHub.