{"record":{"id":"e40028e395afb90e","repo":"windmill-labs/windmill","slug":"the-connection-check-did-not-run-is-a-worker-list","errorCode":null,"errorMessage":"The connection check did not run. Is a worker listening to the postgresql tag available?","messagePattern":"The connection check did not run\\. Is a worker listening to the postgresql tag available\\?","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"frontend/src/lib/components/workspaceSettings/datatableProbe.ts","lineNumber":82,"sourceCode":"\n\tlet completed: Awaited<ReturnType<typeof JobService.getCompletedJob>> | undefined = undefined\n\tawait tryEvery({\n\t\ttryCode: async () => {\n\t\t\tcompleted = await JobService.getCompletedJob({ workspace, id: job })\n\t\t},\n\t\ttimeoutCode: async () => {\n\t\t\tawait JobService.cancelQueuedJob({\n\t\t\t\tworkspace,\n\t\t\t\tid: job,\n\t\t\t\trequestBody: { reason: 'The connection check did not start' }\n\t\t\t}).catch(() => {})\n\t\t},\n\t\tinterval: 500,\n\t\ttimeout\n\t})\n\n\tif (!completed) {\n\t\tthrow new Error(\n\t\t\t'The connection check did not run. Is a worker listening to the postgresql tag available?'\n\t\t)\n\t}\n\tconst done = completed as { success: boolean; result?: any }\n\tif (!done.success) {\n\t\tthrow new Error(done.result?.error?.message ?? 'Could not connect to the database')\n\t}\n\n\tconst row: Row = (Array.isArray(done.result) ? done.result[0] : done.result) ?? {}\n\t// Suggested only where the privilege is actually missing; Postgres returns NULL for a\n\t// statement it could not name, which is the case where no grant would help anyway.\n\tconst suggested_grants = [\n\t\trow.can_create_table ? undefined : (row.grant_schema ?? undefined),\n\t\trow.can_create_schema ? undefined : (row.grant_database ?? undefined)\n\t].filter((s): s is string => !!s)\n\n\treturn {\n\t\tuser: row.usr ?? '',","sourceCodeStart":64,"sourceCodeEnd":100,"githubUrl":"https://github.com/windmill-labs/windmill/blob/e474e8803ce2ff5c2df09a58dab51d45f5c922ca/frontend/src/lib/components/workspaceSettings/datatableProbe.ts#L64-L100","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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"],"exampleFix":"// before\nnpx windmill worker  # default tags only\n// after\nnpx windmill worker --tag postgresql","handlingStrategy":"validation","validationCode":"const workers = await WorkerService.getWorkers()\nif (!workers.some(w => (w.tags ?? []).includes('postgresql'))) {\n  throw new Error('Start a worker with --tag postgresql before probing the connection')\n}","typeGuard":null,"tryCatchPattern":"try {\n  await probeDatatableConnection(...)\n} catch (e) {\n  if (String(e.message).includes('did not run')) {\n    // check worker availability, then offer a retry\n  }\n}","preventionTips":["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"],"tags":["worker","timeout","postgresql","infrastructure"],"backgroundTag":"no-worker-for-tag","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"}