When pal_selector=0 (no predefined palette), the Java code reads two separate full bytes for the 2-color palette (line 421-422 of ByteColorRFBRenderer.java). We were reading one packed byte and splitting into nibbles, consuming 1 byte too few and misaligning all subsequent reads including the zlib compressed data. This caused "deflate decompression error" on stream 1 because the zlib header (78 da) was offset by 1 byte. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>