Vovy finds why your serverless app is opening too many database connections and switches it to Supabase's connection pooler so traffic spikes stop failing.
Supabase keeps saying too many clients, fix my database connections
How it works
- Find the connection errors: Vovy checks Supabase Postgres logs for "sorry, too many clients already" or "remaining connection slots are reserved".
- Explain why serverless hits this: Every serverless function can open its own connection. Two hundred visitors can mean two hundred connections, more than a small database allows.
- Get the pooler connection string: It clicks Connect in your Supabase project and copies the transaction pooler string on port 6543, a shared lobby for connections.
- Switch your app to the pooler: Cursor updates DATABASE_URL in your code and Vercel, and turns off prepared statements if your ORM, like Prisma, needs it for transaction mode.
- Show connection usage: Vovy opens the database Reports and shows a card with active connections before and after the change.
What you provide
- Access to Supabase and Vercel
- Your project open in Cursor
What you get
- Pooled database connections
- Updated connection strings
- Connections chart
- No more spike failures
FAQ
Do I need this if I use supabase-js?
Usually not. supabase-js talks to Supabase over HTTP, not direct Postgres connections. This matters when you use Prisma, Drizzle or a raw Postgres client.
Will my app go down during the switch?
It needs one redeploy with the new connection string. Requests keep working on the old deploy until the new one is live.
Should I just upgrade my compute size?
Bigger compute allows more connections, but pooling fixes the root cause and costs nothing.
Related tasks
All tasks