Slackbot
12/12/2025, 4:35 PMMarvin
12/12/2025, 4:35 PMMarvin
12/12/2025, 4:45 PMprefect work-pool inspect ecs-cpu-pool
- List queues in the pool (IDs are needed if you try deleting queues):
prefect work-queue ls --pool ecs-cpu-pool --verbose
3) If queues exist, especially a “default” queue
- There’s a known constraint where the pool’s default queue can block deletion. The safest path:
- Change the pool’s default queue to a different queue (or unset it) in the Cloud UI:
- Cloud > Work Pools > ecs-cpu-pool > Settings > Default queue
- Then try deleting the pool again:
prefect work-pool delete ecs-cpu-pool
4) If you prefer a programmatic workaround
- You can unset the default queue then delete the pool via the client. Here’s a small async snippet you can run with your Prefect credentials configured:
import asyncio
from prefect.client.orchestration import get_client
from prefect.client.schemas.actions import WorkPoolUpdate
async def main():
async with get_client() as client:
# Unset the default queue reference to allow deletion
await client.work_pools.update_work_pool(
work_pool_name="ecs-cpu-pool",
work_pool=WorkPoolUpdate(default_queue_id=None),
)
# Now delete the work pool
await client.work_pools.delete_work_pool(work_pool_name="ecs-cpu-pool")
asyncio.run(main())
If you run into an error deleting queues directly:
- Delete queues by ID:
prefect work-queue delete <queue_id>
- If the delete fails for the “default” queue, switch or unset the default queue first (UI or the snippet above), then delete.
A couple of clarifying questions to help me zero in:
- Do you see one or more queues under this pool, and which one is set as the default?
- Any connected workers or provisioned infrastructure tied to this pool?
- If you try the UI route to change/unset the default queue, does the pool delete succeed afterward?
If you want, share the output of:
prefect work-pool inspect ecs-cpu-pool
prefect work-queue ls --pool ecs-cpu-pool --verbose
and I’ll advise the next exact command(s).Marvin
12/12/2025, 4:55 PMMarvin
12/12/2025, 4:57 PMdefault_queue_id is immutable via public API/CLI. There isn’t a supported way to unset or change the default queue for an existing pool right now. If the queue you’re trying to delete is the pool’s default queue, that will block deletion of both the queue and the pool and surface as a 503.
Can you confirm which queue is the pool’s default?
- Get the pool details (look for default_queue_id):
prefect work-pool inspect ecs-cpu-pool
- List queues (so we can match IDs):
prefect work-queue ls --pool ecs-cpu-pool --verbose
If the queue you tried to delete matches the pool’s default_queue_id, that explains the 503. If you try the other (non-default) queue and that also 503s, then we’re definitely looking at a Cloud-side issue.
Short-term workarounds while we investigate:
- Pause the pool (and queues) so they don’t do any work:
prefect work-pool pause ecs-cpu-pool
# and for each queue ID
prefect work-queue pause <queue_id>
- Create a new pool and queues and point deployments to the new pool. You can keep the old one paused until we resolve the deletion path.
A couple of quick checks:
- Verify Cloud health: Prefect Cloud status
- Share your Prefect version:
prefect version
If you can share the outputs of:
prefect work-pool inspect ecs-cpu-pool
prefect work-queue ls --pool ecs-cpu-pool --verbose
I’ll confirm whether the default queue is the blocker and escalate with our engineering team. If you’d like, I can also file a ticket on your behalf referencing your account/workspace IDs from the error URL and include the exact queue/pool IDs to get this unblocked.Marvin
12/12/2025, 5:02 PMMarvin
12/12/2025, 5:06 PMprefect work-queue ls --pool ecs-cpu-pool --verbose
- This will show IDs for the two queues (dev/prod). Let me know which one matches d44b1471-... (the default) and which one is fb9bfb0e-... (the one you tried to delete).
If you want to try an alternate path (delete by pool/name) to see if it behaves differently, you can call the pool/queue-name API route directly with your Prefect API key:
Replace <ACCOUNT_ID> and <WORKSPACE_ID> using the IDs from your error URL.
curl -X DELETE \
-H "Authorization: Bearer $PREFECT_API_KEY" \
"<https://api.prefect.cloud/api/accounts/<ACCOUNT_ID>/workspaces/<WORKSPACE_ID>/work_pools/ecs-cpu-pool/queues/dev>"
(or prod)
Or with a quick Python snippet:
import asyncio
from prefect.client.orchestration import get_client
POOL = "ecs-cpu-pool"
QUEUE_NAME = "dev" # or "prod"
async def main():
async with get_client() as c:
# sanity check default queue id
pool = await c.work_pools.read_work_pool_by_name(POOL)
print("default_queue_id:", pool.default_queue_id)
# call the pool/name route directly
await c._client.delete(f"/work_pools/{POOL}/queues/{QUEUE_NAME}")
print("Deleted", QUEUE_NAME)
asyncio.run(main())
Note: c._client is an internal HTTP client; this is just a temporary workaround to hit the pool/name endpoint.
If either delete path (ID or pool/name) keeps returning 503, it’s on the Cloud side. I can escalate to our engineering team with:
- Account ID and Workspace ID (present in your error URL)
- Work pool name: ecs-cpu-pool
- Queue IDs and names (output of the ls command)
- Timestamps of your failing requests
- Your Prefect version: 3.6.5
- Region if applicable
In the meantime:
- You’ve already paused the pool and both queues — that’s good.
- If you need to move forward, create a new work pool + queues, and repoint deployments to the new queue in the Cloud UI. You can leave the old pool paused until we clean it up.
Also double-check Cloud status in case this was transient: Prefect Cloud status
Share the work-queue ls --pool ecs-cpu-pool --verbose output and whether curl/Python delete by name behaves any differently, and I’ll take it from there and get this escalated.João Pedro Boufleur
12/12/2025, 5:13 PMMarvin
12/12/2025, 5:13 PMMarvin
12/12/2025, 5:13 PMprefect work-queue ls --pool ecs-cpu-pool --verbose
Please identify which one is the default (matches default_queue_id=d44b1471-18d9-4349-ae74-8653a7babb5a) and which one is the non-default you attempted to delete (fb9bfb0e-0e1e-4d9d-b500-8355d5d0180f).
- Approximate timestamps (UTC) when you tried the deletes (both queue and pool).
- Region (US/EU) and your org/workspace name/slugs.
- Whether the same 503 occurs from the Cloud UI when attempting to delete the queue/pool.
What we’ll include in the escalation:
- Prefect version: 3.6.5
- Server type: Cloud
- Repro: 503 on DELETE /work_queues/{id} and DELETE /work_pools/{name}, including pool/queue identifiers
- Note that this happens for a non-default queue as well, indicating a backend issue (not just default-queue RESTRICT behavior)
In the meantime:
- Keeping the pool and queues paused is the right move.
- If you need to proceed operationally, create a new pool + queues and point deployments to the new queue; leave the old pool paused until we clean it up.
- Keep an eye on Prefect Cloud status in case there’s a transient incident.
If you give me the confirmations and the work-queue ls --pool ecs-cpu-pool --verbose output, I’ll file and track the escalation immediately and update you as soon as engineering responds.Marvin
12/12/2025, 5:23 PMMarvin
12/12/2025, 5:24 PMJoão Pedro Boufleur
12/12/2025, 5:24 PMMarvin
12/12/2025, 5:25 PMMarvin
12/12/2025, 5:25 PM