Hui Wu
06/26/2026, 6:50 AMMarvin
06/26/2026, 6:50 AMMarvin
06/26/2026, 6:52 AMprefect worker start --pool <pool-name> process is alive
- Result: queue shows no polling workers and not ready
2. The worker is running, but polling the wrong pool or wrong queue
- The worker may be attached to another pool
- Or it may be restricted to specific queues with --work-queue
- If your deployment is in queue A, but worker only polls queue B, then that queue looks not ready
3. The worker lost connection / stopped polling
- Sometimes the worker started before, so the pool still looks okay for a moment
- But if it stops polling, the queue status becomes not ready
4. The worker type does not match the pool type
- Example: Docker worker for a process pool, or Kubernetes worker for a docker pool
- Then the pool may exist, but no usable worker is servicing it
5. The worker cannot reach Prefect API / Prefect Cloud
- Network/auth issues can prevent polling
- Then UI shows no polling workers
What to check
1. Verify the worker is running
Run on the machine where the worker should be running:
bash
prefect worker start --pool <your-pool-name>
If it is already running, check its logs for polling messages or errors.
2. Inspect the work pool
bash
prefect work-pool inspect <your-pool-name>
This confirms the pool exists and shows its configuration.
3. Confirm the worker is using the correct queue
If you started worker with a queue restriction, make sure it matches the deployment queue:
bash
prefect worker start --pool <your-pool-name> --work-queue <queue-name>
If unsure, start without --work-queue so it can poll all queues in that pool.
4. Check worker logs
Look for errors like:
- authentication/API errors
- connection refused / timeout
- wrong worker type
- missing infrastructure dependencies
Important distinction
- Work pool active = pool is enabled/configured
- Queue ready / polling worker visible = an actual worker is actively polling that queue
So if queue says no polling worker / not ready, Prefect is basically telling you:
“I do not currently see a worker polling this queue.”
Verified CLI commands
- prefect worker start --help
- prefect work-pool inspect --help
If you want, send me:
- your worker start command
- your pool type
- whether you’re using a specific work queue
- a screenshot or the output of prefect work-pool inspect <pool>
and I can help pinpoint the exact cause.Hui Wu
06/26/2026, 7:01 AMMarvin
06/26/2026, 7:01 AMMarvin
06/26/2026, 7:01 AMude-local-pool
- type: process
- status: READY
That means Prefect knows about the pool, but it does not yet prove that a worker is actively polling the queue right now.
Since this is a process pool, the most common causes are:
1. No local process worker is running anymore
For a process pool, you need a worker process continuously running somewhere:
bash
prefect worker start --pool ude-local-pool --type process
If that command is not currently running, the queue will show no polling worker / not ready.
2. The worker is running in another shell/session and stopped silently
This is very common with local workers. If the terminal was closed, the worker stopped.
3. The worker is polling a different queue
Your pool has a default_queue_id, but if your worker was started with --work-queue some-other-queue, it may not be polling the queue your deployment uses.
4. Temporary UI/status delay
Sometimes pool status remains READY briefly even when queue readiness is stale. Queue readiness is tied to active polling.
What I’d check next
Step 1: start a fresh worker explicitly
On the same machine where your flow code is available, run:
bash
uv run prefect worker start --pool ude-local-pool --type process
Then watch the logs. You should see it begin polling.
Step 2: if it starts successfully, refresh the UI
The queue status should change to ready once polling is detected.
Step 3: if it still says no polling worker, check whether your deployment uses a non-default queue
If you deployed to a named queue, start the worker with that queue too:
bash
uv run prefect worker start --pool ude-local-pool --type process --work-queue <queue-name>
Step 4: check for worker log errors
Common errors:
- cannot connect to Prefect API / Cloud
- wrong PREFECT_API_URL
- missing project code / wrong working directory
- environment mismatch
One more important point about process pools
A process worker must run on a machine that already has:
- your Python environment
- your flow code available
- Prefect installed
- correct API configuration
Unlike Docker/Kubernetes workers, process workers do not create isolated infrastructure automatically.
Likely diagnosis
Based on what you shared, the most likely explanation is simply:
The pool exists and is marked READY, but there is no currently running process worker actively polling ude-local-pool.
If you want, send me the output of starting:
bash
uv run prefect worker start --pool ude-local-pool --type process
and I can help interpret it.Hui Wu
06/26/2026, 7:05 AMMarvin
06/26/2026, 7:05 AMMarvin
06/26/2026, 7:05 AMbash
uv run prefect worker start --pool ude-local-pool
and the actual Prefect worker process appears here too:
bash
/home/admin/app/knowsphere/.venv/bin/python ... prefect worker start ...
So if the UI still says no polling worker / queue not ready, the likely causes narrow to these:
1. The worker process is alive, but not successfully polling the API
The process existing in ps -ef only means it started. It does not guarantee it connected to Prefect and is polling.
This is the most likely issue now.
Please inspect the worker log file:
bash
tail -n 100 /home/admin/app/logs/worker_std_out
Look for messages like:
- authentication errors
- connection refused
- wrong workspace/API URL
- repeated retries
- import/environment issues
2. The worker may be connected to a different Prefect API/workspace
If PREFECT_API_URL is wrong, the worker can run but poll the wrong server/workspace.
Check:
bash
uv run prefect config view
Pay attention to:
- PREFECT_API_URL
If using Cloud, confirm it points to the correct workspace.
If using Server, confirm it points to the correct server.
3. The worker may be failing right after startup and getting restarted
Sometimes ps catches a running wrapper process, but the real worker may be erroring/restarting.
So also check whether the log is actively updating:
bash
tail -f /home/admin/app/logs/worker_std_out
You want to see healthy messages indicating the worker is polling.
4. Queue mismatch is still possible
You started the worker without --work-queue, which usually means it can poll all queues in that pool, so this is less likely.
But if your deployment targets a specific queue with some unusual config, we should confirm later if needed.
What healthy behavior should look like
A healthy process worker should log things indicating:
- worker started
- connected to Prefect API
- polling work pool ude-local-pool
If you don’t see that, then the worker is not truly active from Prefect’s perspective.
Most useful next commands
Run these and share the outputs:
bash
tail -n 100 /home/admin/app/logs/worker_std_out
bash
uv run prefect config view
If you want, also try running the worker in the foreground temporarily instead of backgrounding it:
bash
uv run prefect worker start --pool ude-local-pool --type process
That often makes the problem obvious immediately.
At this point, I do not think the issue is “no worker process exists.”
I think it is more likely:
worker process exists, but it is not successfully registering/polling the Prefect API.Bring your towel and join one of the fastest growing data communities. Welcome to our second-generation open source orchestration platform, a completely rethought approach to dataflow automation.
Powered by