Connection Pools are not Connection Limits

Published on Wednesday, August 20, 2025 - 11:00 PM CDT

A connection pool enables your program to re-use connections that have already been established. This is an optimization not validation. There is nothing preventing your program from creating a new connection if every connection in the pool has been claimed. In urllib3, you can prove this by setting your pool-size to zero and making a request using it. The connection won't be retained for re-use but you're free to make that request anyway.

If you want to enforce a connection limit in your client you can do so by setting block=True in your pool definition.