If there's an issue in the transport in mclr::MirProtobufRpcChannel::send_message during the sending of the message, it will trigger the disconnection code.
If the client happens to be mid-mir_buffer_stream_swap_buffers at the same time that the the connection error trips the disconnection notification, we'll see that error. In the case of a true disconnection, the only reasonable thing the client code can do is to throw, as it can no longer appropriately fulfil the mir_buffer_stream_swap_buffers requirement.
Also, iirc, there are certain things that the client can try to do that will cause the server to disconnect it, maybe its an issue like that?
If there's an issue in the transport in mclr::MirProtob ufRpcChannel: :send_message during the sending of the message, it will trigger the disconnection code.
If the client happens to be mid-mir_ buffer_ stream_ swap_buffers at the same time that the the connection error trips the disconnection notification, we'll see that error. In the case of a true disconnection, the only reasonable thing the client code can do is to throw, as it can no longer appropriately fulfil the mir_buffer_ stream_ swap_buffers requirement.
Also, iirc, there are certain things that the client can try to do that will cause the server to disconnect it, maybe its an issue like that?