A good way to debug this is to figure out
which part is hanging:
1.
browser/UI
2.
Prefect API/server
3.
database behind the API
4.
reverse proxy / auth / network
A minute-long “freeze” on reload usually suggests the page is waiting on an API request or the browser main thread is blocked.
What I’d do first
1. Open browser DevTools and reload the page
- Open
Network tab
- Check
Preserve log
- Reload the Deployments page
- Look for requests that stay
Pending for a long time or return errors
In particular, watch for deployment-related API calls. In Prefect 3.x the UI will request deployment data from the API, so if one of those hangs for ~60s, that’s a big clue.
What to note:
- exact request URL
- status code
- total duration
- response body, if any
If requests are fast but the page is still frozen, that points more to a frontend/browser issue.
2. Check the browser console
In the
Console tab, look for:
- JavaScript errors
- repeated warnings
- failed fetch/auth/CORS errors
- out-of-memory or rendering errors
If you see a stack trace on reload, that’s very useful.
3. Check Prefect server logs while reproducing it
If you’re self-hosting Prefect Server, reproduce the issue while tailing logs.
If you start the server manually, run it in the foreground and watch logs during reload. If it’s in Docker/Kubernetes/systemd, check container/service logs.
You’re looking for:
- slow requests
- database timeout messages
- worker timeouts
- proxy/auth errors
- 5xx responses
4. Test the API outside the UI
Try calling the API directly for deployments and compare response time with the UI freeze.
For example, if you can access the API docs or use curl against your Prefect API, test the deployments listing endpoint and see whether it also takes ~60 seconds.
If direct API calls are also slow:
- issue is likely API/database side
If direct API calls are fast:
- issue is more likely UI/browser/proxy related
5. Try another browser / incognito / disabled extensions
This helps separate UI bugs from local browser state issues.
- incognito/private window
- different browser
- disable extensions/ad blockers
- hard refresh / clear site data
If the problem disappears there, it may be cached assets or an extension conflict.
6. Compare old UI vs new UI
You mentioned the
old/current stable UI. If possible, try the newer UI as a comparison.
If:
- old UI freezes
- new UI does not
then this is likely a UI-specific issue rather than a backend issue.
7. Check whether the number of deployments is large
If you have a lot of deployments, the page may be doing expensive filtering/counting/loading on refresh. This can expose:
- slow database queries
- missing DB maintenance
- API performance regressions
If self-hosted with Postgres, DB performance matters a lot here.
8. If self-hosted, inspect the database
Useful checks:
- CPU / memory pressure on DB host
- slow query logs
- blocked queries / locks
- table bloat / need for
VACUUM ANALYZE
- overall deployment count and flow/deployment table size
If the freeze lines up with slow deployment queries, that’s likely the root cause.
Practical isolation matrix
-
Network request pending for ~60s → API, DB, proxy
-
Network request finishes quickly, but tab is unresponsive → frontend/browser
-
Only one browser affected → local browser/cache/extension
-
Old UI affected, new UI not affected → old UI bug/regression
-
API logs show timeout / slow SQL → backend/database issue
Things worth collecting
If you want to narrow this down quickly, gather:
- Prefect deployment method: self-hosted server or Cloud?
- browser + version
- whether this happens in all browsers
- approximate number of deployments
- server logs during one reload
- screenshot of DevTools Network waterfall
- any Console errors
Likely next steps / workarounds
- try newer UI as a workaround
- upgrade from 3.7.8 if possible, since UI/perf bugs may already be fixed in later 3.x releases