The marker exception thrown when a timeout is exceeded.
This error can be thrown under 2 circumstances:
A wait timeout has exceeded, which means that the client timed out waiting for the next
message from the server. In this case, #isRetryable() will be true.
An idle timeout has exceeded, which means that the stream is using manual flow control and
the caller has not called StreamController#request(int) (in case of callback api)
or next on ServerStream#iterator() (in case of blocking api).