Please see https://twitter.com/ericlaw/status/953987196654104576 for a summary of the problem and the current annoying workaround.
There used to be a TODO in the !bReadResponseOk block explaining how we needed to peek at the unprocessed data from the ServerPipe to see what bytes we /did/ get back.
(Further analysis of the scenario here is that the headers aren't malformed, but they're sent and the server chases them with a RST that causes the socket read to throw an exception. We still have 257 bytes of data though, and could show that to the user)