In ruby-3.2.2/lib/ruby/3.2.0/net/http.rb line 1855, a request is written to the socket; on line 1862 the response is read from the socket.
However, if a Timeout::Error occurs before the response arrives, the response is not read from the socket.
If the client is re-used, this causes the next request to read the response from the interrupted request (since it's queued on the socket and nothing else has read it).