private async Task HandleReceivedAsync(byte[] received) { var receivedMsg = await _messageSerializer.DeserializeMessageAsync(received).ConfigureAwait(false); if (receivedMsg == null) { ThrowMessageDeserializedNull(); } try { HandleReceivedMessage(receivedMsg); } catch (Exception e) { if (receivedMsg.RequestId != null && _callbackByRequestId.TryRemove(receivedMsg.RequestId.Value, out var responseHandler)) { responseHandler?.HandleFailure(e); } } }