reading can be canceled in non-network threads (e.g., by a timeout), and this was causing an assertion failure.