TODO: Handle Errno::EPIPE and Errno::ECONNRESET