pool timeout 🗃️ SQL

Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. All pooled connections were in use and max pool size was reached.

The application’s connection pool was exhausted — all connections busy or leaked.

Seen on: SQL

Meaning

Connections not disposed/closed, long-running queries, or more concurrent requests than Max Pool Size (default 100 in ADO.NET).

Common causes

  • Connections not disposed (missing using/close)
  • Long queries holding connections
  • Traffic spikes beyond pool size

⚡ Quick fix

  1. Always dispose connections (using/await using)
  2. Find slow queries and blocking
  3. Tune Max Pool Size with DB capacity in mind

Detailed fix by platform

.NET

  1. await using var conn = new SqlConnection(cs); await conn.OpenAsync();

How to diagnose

  1. Pool — In-use vs max?
  2. Leaks — Connections closed?

🧠 Still stuck? Analyze your error

Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.