I just happened to notice that both HTTP1ClientChannelHandler and HTTP2ClientRequestHandler are both calling context.fireUserInboundEventTriggered from inside their implementations of triggerUserOutboundEvent. If this is intentional, adding a comment explaining why an outbound event would suddenly turn into an inbound event would probably be good.