# Connection pool exhausted: pre-release checklist

Source: https://releasefailures.com/incidents/connection-pool-exhausted/
Content version: 1.0.0
Verified on: 2026-10-21
Licence: CC BY 4.0

Definition: A new code path leaks or holds connections and the pool runs out under load.
- [ ] PR-01 Run each new background job in the integration suite and confirm the open database connection count returns to its starting value when the job ends. (test class: Integration tests)
- [ ] PR-02 Exercise every branch of a code path that opens a database connection, including the branch where its condition ends, and assert the connection is closed afterwards. (test class: Integration tests)
- [ ] PR-03 Count connections checked out per background job with the health-check feature flag on and off, and fail the test when the flag adds a connection. (test class: Integration tests)
- [ ] PR-04 Run indexing processes through call paths that cross into the older session management code and assert every connection is released. (test class: Integration tests)
- [ ] PR-05 Run each new query from the release against a production-sized copy of the primary database and fail the run when its execution time exceeds the agreed budget. (test class: Load and performance tests)
- [ ] PR-06 Run a load test with the new background job on its production schedule alongside user write traffic and confirm primary database pool usage stays below the pool limit. (test class: Load and performance tests)
- [ ] PR-07 Hold the load test at peak morning traffic until connection counts level off, and fail it when open connections keep rising. (test class: Load and performance tests)
- [ ] PR-08 Record connection pooler saturation at every feature flag rollout step, including the final step to 100 percent of pods, and halt the rollout when saturation rises above the pre-rollout level. (test class: Canary and progressive delivery checks)
- [ ] PR-09 Halt the rollout when database connections in use per canary pod exceed the baseline pods' count. (test class: Canary and progressive delivery checks)
