Currently, we always do try_recv_initial in event streams on both the server and the client. However, this is the wrong behavior because it can cause the server/client to hang until a message is received and that can easily cause deadlock.
The right fix is actually filter out the initial messages in the recv() method and only surface them when you try to read them explicitly. That way we can only attempt to read the messages when they are required and otherwise, we will ignore them.