No data is being lost!
The connection is being discarded after the request is completed (because the pool is full, as mentioned). This means that this particular connection is not going to be re-used in the future.
Because a urllib3 PoolManager reuses connections, it will limit how many connections are retained per hos to avoid accumulating too many unused sockets. The PoolManager can be configured to avoid creating excess sockets when the pool doesn’t have any idle sockets available with PoolManager(..., block=True).
If you’re relying on concurrency, it could be a good idea to increase the size of the pool (maxsize) to be at least as large as the number of threads you’re using, so that each thread effectively gets its own connection.
More details here: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#customizing-pool-behavior