When deadlines are set for a call, there is an inherent race condition in which party first sees the deadline was exceeded - it can be either the client or the server (they see the same deadline for a call so the client side part of the call will expire at almost the same time as the server-side of the call).
I suspect in your case, the client-side of the call realizes the call has timed out first (and resets the HTTP2 stream to the server). Right after that, the server sees the timeout as well and tries to send the "Cancelled" status to the client - but the connection has just been reset by the client and it results in an error.
As said, this race is inherent and it is quite natural that it happens. On the other hand, we shouldn't really print a somewhat misleading error when that happens (= i.e. the problem is with too verbose logging in this situation, not with the RPC handling logic itself).
Specifically for your applications, if you have that many (>20%) or requests timing out, you should probably increase the call deadline.