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
- Always dispose connections (using/await using)
- Find slow queries and blocking
- Tune Max Pool Size with DB capacity in mind
Detailed fix by platform
.NET
await using var conn = new SqlConnection(cs); await conn.OpenAsync();
How to diagnose
- Pool — In-use vs max?
- 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.
Was this page helpful?
Report a correction or suggest an improvement
Last updated 2 Oct 2026