When streaming a large data source using WriteToInputStream, if the InputStream reader decides to close the stream early by calling close() - and does not perform any more read()s (as expected) - because the "closed" state cannot be propagated upstream due to Vert.x stream API limitations, the buffer will fill up until the upstream is paused and then gets stuck - no more data will be pulled from the upstream. If the upstream has a timeout, it may fire causing an error.