Full disclosure: I&#x27;m an engineer at AWS and I work on NAT Gateway :)<p>Thanks for the pointer to urllib3 - we&#x27;ll take a look at it and see if there&#x27;s anything we can do about the behavior. One of the challenges with sending &quot;FIN&quot; on timeout is, as you write ... it closes the connections cleanly.<p>Some TCP based protocols (Including even HTTP in some modes) use a successful connection close to indicate that an object has been transferred fully; so what we&#x27;ve seen is that a network connection may stall (internet packet loss for example) ... then the connection eventually times out ... and the &quot;FIN&quot; falsely conveys that the entire object has been transferred. The end result is a truncated object, which is no good either.