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:

  • Connection timeouts when querying PostgreSQL
  • FATAL: remaining connection slots reserved for non-replication superuser connections errors
  • Intermittent 502/503 responses on API calls using pooled connections
  • Database operations hanging or failing after 30+ seconds
  • Who'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/postgres

    Use 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:

  • Neon: Serverless Postgres with built-in connection pooling (no pgBouncer issues)
  • Railway: Simple managed Postgres, newer infrastructure
  • Render: Good for smaller projects, reliable pooling
  • Fly Postgres: If you're already in the Fly ecosystem
  • *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.

    πŸ”₯ 0d
    LIVE
    ↓ PlanetScale rage spiking β€’βš  Vercel pricing complaints ‒↑ Railway gaining fast ‒↑ Supabase happiness rising ‒↑ Resend loved by devs ‒↓ PlanetScale rage spiking β€’βš  Vercel pricing complaints ‒↑ Railway gaining fast ‒↑ Supabase happiness rising
    DEVELOPER PAIN RADAR // Loading...

    Developers complain.
    Opportunities appear.

    We track what developers are struggling with today β€” and what opportunities that creates.

    β€”
    guides today
    β€”
    avg happiness
    πŸ”₯ Pain
    πŸ“– Guides
    πŸ”­ Explore
    πŸ‘€ Mine
    πŸ”₯ Pain Radar β€” rage scores today
    β†— share
    πŸ’‘ Opportunity Feed β€” pain = market gap
    πŸ“ˆ Tool Momentum
    all scores β†’
    πŸ“– Latest Guide
    all guides β†’
    πŸ“– All Guides
    πŸ“Š Tool Scores
    + Submit
    πŸ“° Hacker News
    βž• Submit a Tool
    ← back