BREAKING: Supabase MINOR π¨ pgBouncer issues on older projects [6ky4qpn3srzg]
Supabase experiencing pgBouncer connection pooling failures on legacy projects. Immediate workarounds and monitoring steps for indie hackers.
BREAKING: Supabase pgBouncer Issues Affecting Older Projects
Status: Investigating | Severity: MINOR | Impact: Partial disruption
What's Down & Who's Affected
Supabase is reporting pgBouncer connection pooling failures on select older projectsβprimarily those created before Q3 2023. The issue manifests as:
FATAL: remaining connection slots reserved for non-replication superuser connections errorsWho's impacted: Indie projects on legacy infrastructure, older starter/pro tier deployments. Newer projects are unaffected. Not all old projects are hitβthis is partial.
Immediate Workarounds (Do This NOW)
1. Switch to Direct Connections
Temporarily bypass pgBouncer: ```Instead of your pooled connection string:
postgres://user:pass@aws-0-region.pooler.supabase.com/postgresUse direct connection:
postgres://user:pass@aws-0-region.supabase.co/postgres ``` Note the.pooler.supabase.com β .supabase.co change. You'll lose connection pooling benefits but restore immediate access.2. Reduce Connection Pool Size
If you must use pooler, lower your pool size: ```javascript // Reduce from default 10-15 to 3-5 const pool = new Pool({ max: 3, // was 10 idleTimeoutMillis: 30000 }); ```3. Implement Retry Logic
Add exponential backoff in your client: ```javascript const retryQuery = async (query, maxRetries = 3) => { for (let i = 0; i < maxRetries; i++) { try { return await db.query(query); } catch (err) { if (i === maxRetries - 1) throw err; await new Promise(r => setTimeout(r, 1000 * Math.pow(2, i))); } } }; ```4. Scale Read Replicas
Route read traffic to read replicas if you have them configured.Check If Your Project Is Affected
1. Go to Supabase Dashboard β Your project
2. Settings β Database β Copy your connection string
3. Look for .pooler.supabase.com in the URL
4. Test direct connection by replacing .pooler with .supabase.co
5. If that works but pooler doesn't = you're affected
Alternatively, test via psql:
```bash
psql "postgres://user:pass@aws-0-region.pooler.supabase.com/postgres" -c "SELECT 1"
Compare with:
psql "postgres://user:pass@aws-0-region.supabase.co/postgres" -c "SELECT 1" ```Alternative Tools to Consider
If this becomes chronic:
*Don't migrate yetβthis should be resolved in hours.*
Monitor Recovery
1. Check official status: https://status.supabase.com (refresh every 5 min) 2. Test your pooler connection every 15 minutes 3. Watch Supabase Discord: #incidents channel for updates 4. Set alerts: Use your monitoring tool to ping pooler endpoint 5. Follow up: Supabase will post RCA (Root Cause Analysis) post-incident
Bottom Line
Use direct connections NOW. This is temporary. The team is actively investigating. Older projects should see resolution within 2-4 hours. New projects are unaffected. Keep your logs on for debugging.
Stay calm. This is a connection pool issue, not data loss.