Thanks. I've confirmed that it's fixed. I'm able to see the SNI and the HTTPS Connection works fine 
2023-08-23T08:34:05+0700 info com.apple.nio-connect-proxy.ConnectHandler : channel=ObjectIdentifier(0x0000000102a04080) localAddress=Optional([IPv4]127.0.0.1/127.0.0.1:9090) remoteAddress=Optional([IPv4]127.0.0.1/127.0.0.1:50014) [ConnectProxy] Connected to Optional([IPv4]104.21.68.11/104.21.68.11:443)
ChannelPipeline[ObjectIdentifier(0x000060000210c0a0)]:
[I] โโ [O]
ByteToMessageHandler<SNIHandler> โโ [handler3]
DebugInboundEventsHandler โโ [handler4]
โโ DebugOutboundEventsHandler [handler5]
โ
SNI = hostname("httpbin.proxyman.app")
Channel completed reading in handler4
First: channelReadComplete
Reading in handler5
Channel read NIOAny { ByteBuffer { readerIndex: 0, writerIndex: 330, readableBytes: 330, capacity: 2048, storageCapacity: 2048, slice: _ByteBufferSlice { 0..<2048 }, storage: 0x0000000102009800 (2048 bytes) } } in handler4
First: channelRead, data = NIOAny { ByteBuffer { readerIndex: 0, writerIndex: 330, readableBytes: 330, capacity: 2048, storageCapacity: 2048, slice: _ByteBufferSlice { 0..<2048 }, storage: 0x0000000102009800 (2048 bytes) } }
Second: partnerWrite
Channel completed reading in handler4
First: channelReadComplete
Second: channelRead, data = NIOAny { ByteBuffer { readerIndex: 0, writerIndex: 2048, readableBytes: 2048, capacity: 2048, storageCapacity: 2048, slice: _ByteBufferSlice { 0..<2048 }, storage: 0x0000000103809e00 (2048 bytes) } }
First: partnerWrite
Writing NIOAny { ByteBuffer { readerIndex: 0, writerIndex: 2048, readableBytes: 2048, capacity: 2048, storageCapacity: 2048, slice: _ByteBufferSlice { 0..<2048 }, storage: 0x0000000103809e00 (2048 bytes) } } in handler5
Second: channelRead, data = NIOAny { ByteBuffer { readerIndex: 0, writerIndex: 2648, readableBytes: 2648, capacity: 4096, storageCapacity: 4096, slice: _ByteBufferSlice { 0..<4096 }, storage: 0x000000010380c400 (4096 bytes) } }
First: partnerWrite
Writing NIOAny { ByteBuffer { readerIndex: 0, writerIndex: 2648, readableBytes: 2648, capacity: 4096, storageCapacity: 4096, slice: _ByteBufferSlice { 0..<4096 }, storage: 0x000000010380c400 (4096 bytes) } } in handler5
Second: channelReadComplete
Flushing in handler5
Channel read NIOAny { ByteBuffer { readerIndex: 0, writerIndex: 226, readableBytes: 226, capacity: 2048, storageCapacity: 2048, slice: _ByteBufferSlice { 0..<2048 }, storage: 0x0000000102009800 (2048 bytes) } } in handler4
First: channelRead, data = NIOAny { ByteBuffer { readerIndex: 0, writerIndex: 226, readableBytes: 226, capacity: 2048, storageCapacity: 2048, slice: _ByteBufferSlice { 0..<2048 }, storage: 0x0000000102009800 (2048 bytes) } }
Second: partnerWrite
Channel completed reading in handler4
First: channelReadComplete
Reading in handler5
Second: channelRead, data = NIOAny { ByteBuffer { readerIndex: 0, writerIndex: 71, readableBytes: 71, capacity: 4096, storageCapacity: 4096, slice: _ByteBufferSlice { 0..<4096 }, storage: 0x000000010380c400 (4096 bytes) } }
First: partnerWrite
Writing NIOAny { ByteBuffer { readerIndex: 0, writerIndex: 71, readableBytes: 71, capacity: 4096, storageCapacity: 4096, slice: _ByteBufferSlice { 0..<4096 }, storage: 0x000000010380c400 (4096 bytes) } } in handler5
Second: channelReadComplete
Flushing in handler5
Channel read NIOAny { ByteBuffer { readerIndex: 0, writerIndex: 31, readableBytes: 31, capacity: 2048, storageCapacity: 2048, slice: _ByteBufferSlice { 0..<2048 }, storage: 0x0000000102009800 (2048 bytes) } } in handler4
First: channelRead, data = NIOAny { ByteBuffer { readerIndex: 0, writerIndex: 31, readableBytes: 31, capacity: 2048, storageCapacity: 2048, slice: _ByteBufferSlice { 0..<2048 }, storage: 0x0000000102009800 (2048 bytes) } }
Second: partnerWrite
Channel completed reading in handler4
First: channelReadComplete
Reading in handler5
Second: channelRead, data = NIOAny { ByteBuffer { readerIndex: 0, writerIndex: 981, readableBytes: 981, capacity: 4096, storageCapacity: 4096, slice: _ByteBufferSlice { 0..<4096 }, storage: 0x000000010380c400 (4096 bytes) } }
First: partnerWrite
Writing NIOAny { ByteBuffer { readerIndex: 0, writerIndex: 981, readableBytes: 981, capacity: 4096, storageCapacity: 4096, slice: _ByteBufferSlice { 0..<4096 }, storage: 0x000000010380c400 (4096 bytes) } } in handler5
Second: channelReadComplete
Flushing in handler5
Channel caught error: read(descriptor:pointer:size:): Connection reset by peer (errno: 54) in handler4
Closing with mode all in handler5
Channel became inactive in handler4
Channel unregistered in handler4
Is it a bug from SNIHandler? If yes, can you release a fix soon.