windmill-labs/windmill · error
The connection check did not run. Is a worker listening to t
Error message
The connection check did not run. Is a worker listening to the postgresql tag available?
What it means
probeDatatableConnection runs a connection-check script on the 'postgresql' worker tag and polls for its completion with a timeout. If the job never reaches a completed state within the timeout, the probe assumes no worker is listening on that tag and throws this error — the check itself never reported success or failure.
Source
Thrown at frontend/src/lib/components/workspaceSettings/datatableProbe.ts:82
let completed: Awaited<ReturnType<typeof JobService.getCompletedJob>> | undefined = undefined
await tryEvery({
tryCode: async () => {
completed = await JobService.getCompletedJob({ workspace, id: job })
},
timeoutCode: async () => {
await JobService.cancelQueuedJob({
workspace,
id: job,
requestBody: { reason: 'The connection check did not start' }
}).catch(() => {})
},
interval: 500,
timeout
})
if (!completed) {
throw new Error(
'The connection check did not run. Is a worker listening to the postgresql tag available?'
)
}
const done = completed as { success: boolean; result?: any }
if (!done.success) {
throw new Error(done.result?.error?.message ?? 'Could not connect to the database')
}
const row: Row = (Array.isArray(done.result) ? done.result[0] : done.result) ?? {}
// Suggested only where the privilege is actually missing; Postgres returns NULL for a
// statement it could not name, which is the case where no grant would help anyway.
const suggested_grants = [
row.can_create_table ? undefined : (row.grant_schema ?? undefined),
row.can_create_schema ? undefined : (row.grant_database ?? undefined)
].filter((s): s is string => !!s)
return {
user: row.usr ?? '',View on GitHub (pinned to e474e8803c)
Solutions
- Start a worker listening on the 'postgresql' tag (e.g. `windmill worker --tag postgresql`)
- Check the worker is running and connected: look at the Workers admin page for a live worker with the postgresql tag
- Increase the probe timeout if workers are simply slow/queued
- Verify worker tags match the tag configured for the data table connection check
Example fix
// before npx windmill worker # default tags only // after npx windmill worker --tag postgresql
Defensive patterns
Strategy: validation
Validate before calling
const workers = await WorkerService.getWorkers()
if (!workers.some(w => (w.tags ?? []).includes('postgresql'))) {
throw new Error('Start a worker with --tag postgresql before probing the connection')
} Try / catch
try {
await probeDatatableConnection(...)
} catch (e) {
if (String(e.message).includes('did not run')) {
// check worker availability, then offer a retry
}
} Prevention
- Ensure at least one worker runs with the postgresql tag in every environment used for setup
- Monitor worker health/queue depth so slow workers don't silently exceed probe timeouts
- Keep the probe timeout generous relative to typical worker queue latency
When it happens
Trigger: No worker serves the 'postgresql' tag (workers offline or not started with that tag); the worker is overloaded and the job exceeds the probe timeout; worker queue congestion delays execution past `timeout` at 500ms intervals.
Common situations: Fresh/CE instance where no postgresql-tagged native worker is running; all workers crashed or were restarted during setup; misconfigured worker tags so the job sits unqueued forever.
Related errors
- preprocessor function is missing
- ${main_name} function is missing
- Timed out waiting for flow ${id} to complete
- Timed out waiting for job ${id}
- Timed out waiting for job ${id} to complete
AI-assisted analysis of windmill-labs/windmill@e474e8803c (2026-09-03).
Data as JSON: /api/errors/e40028e395afb90e.
Report an issue: GitHub.