RPC calls are enqueued to the send buffer of the Channel as they are handled out of the event loop.
While replies are sent to the socket immediately because they are handled in the event loop.
Message reply might preempt the on going RPC call and causes the RPC channel to go to an unknown state:
Send call header
Send reply header
Send reply payload
Send call payload
To fix this, make RPC calls in the event loop.