Stop silencing errors.
We have loops where we naively attempt to keep a connection active for reading that under certain network conditions could end up throwing errors. Since we also catch all errors and silence them, thinking that going back to reading from the socket would continue the operation we end up with hard to detect issues.
The problem is the underlying assumption that we can use a socket after failure, where we should instead focus on re-establishing a connection. This issue however, is just to make sure that the errors provide output that can be used to explain the issue at hand.