KnownPacksPacket serialization is stricter than vanilla (and serverbound one breaks for fabric if client has more than 64 entries). #1474
Description
Expected Behavior
KnownPacksPacket should not have an enforced limit, as vanilla protocol allows server to send as many known packs as it can.
Aka if server sends more than 64 packs it should just work.
(additionally, if fabric client should be amount equal or lower to one sent originally by server).
Actual Behavior
If server sends over 64 known packs, neither modded or vanilla clients will be able to join.
If modded client sends over 64 (while still below or equal to what server sent), modded client will disconnect.
It can be worked around by setting velocity.max-known-packs
to amount of known packs sent by server
Steps to Reproduce
- Create a fabric server, with many server side/vanilla client compatible mods (or not if testing modded-client compat). Requires over 64 mods that include a datapack (/data/) inside.
- Try to connect to that server with vanilla client. You will be able to join if it's not behind velocity, but will get disconnected with an error if velocity is present.
Plugin List
Nothing on velocity.
139 mods on Fabric 1.21.4 server (all work purely server side):
- anvildrop 1.0.0
- ascension 1.0.0
- banhammer 0.12.0+1.21.2
|-- com_mysql_mysql-connector-j 9.1.0
|-- org_postgresql_postgresql 42.7.4
-- org_xerial_sqlite-jdbc 3.46.1.3
- beaconbreakers 1.0.0
- bedwars 1.0.0
-- kdotjpg_open-simplex 2.0
- blocklobbers 1.0.0
- buildbattle 1.0.6
- clutchpractice 1.0.0
- codebreaker 1.0.0
- colorswap 1.0.0
- compound 1.0.0
- consolebox 1.0.0
-- io_github_kawamuray_wasmtime_wasmtime-java 0.18.0
- cornmaze 1.0.0
- creeperfall 1.3.11
- deacoudre 1.4.2
- deathswap 1.0.0
- destroythemonument 1.1.0
- diceyheights 1.0.0
- disguiselib 1.3.6
- downpour 1.0.0
- electricfloor 1.0.0
- elytron 1.0.0
- fabric-api 0.112.0+1.21.4
|-- fabric-api-base 0.4.53+453d4f9104
|-- fabric-api-lookup-api-v1 1.6.85+b1caf1e904
|-- fabric-biome-api-v1 15.0.5+b1caf1e904
|-- fabric-block-api-v1 1.0.31+7feeb73304
|-- fabric-block-view-api-v2 1.0.19+7feeb73304
|-- fabric-blockrenderlayer-v1 2.0.7+7feeb73304
|-- fabric-client-tags-api-v1 1.1.28+20ea1e2304
|-- fabric-command-api-v1 1.2.61+f71b366f04
|-- fabric-command-api-v2 2.2.40+e496eb1504
|-- fabric-commands-v0 0.2.78+df3654b304
|-- fabric-content-registries-v0 9.1.13+7feeb73304
|-- fabric-convention-tags-v1 2.1.7+7f945d5b04
|-- fabric-convention-tags-v2 2.9.7+b1caf1e904
|-- fabric-crash-report-info-v1 0.3.6+7feeb73304
|-- fabric-data-attachment-api-v1 1.4.4+9aea556b04
|-- fabric-data-generation-api-v1 22.2.0+20ea1e2304
|-- fabric-dimensions-v1 4.0.10+7feeb73304
|-- fabric-entity-events-v1 2.0.11+60fccc7604
|-- fabric-events-interaction-v0 4.0.1+a4eebcf004
|-- fabric-game-rule-api-v1 1.0.62+7feeb73304
|-- fabric-item-api-v1 11.1.13+203e6b2304
|-- fabric-item-group-api-v1 4.1.22+7feeb73304
|-- fabric-key-binding-api-v1 1.0.56+7feeb73304
|-- fabric-keybindings-v0 0.2.54+df3654b304
|-- fabric-lifecycle-events-v1 2.5.3+bf2a60eb04
|-- fabric-loot-api-v2 3.0.32+3f89f5a504
|-- fabric-loot-api-v3 1.0.20+203e6b2304
|-- fabric-message-api-v1 6.0.24+7feeb73304
|-- fabric-model-loading-api-v1 4.1.0+7b6b225304
|-- fabric-networking-api-v1 4.3.8+cc0fa2fe04
|-- fabric-object-builder-api-v1 18.0.6+e604fe7f04
|-- fabric-particles-v1 4.0.13+7feeb73304
|-- fabric-recipe-api-v1 8.0.4+b1caf1e904
|-- fabric-registry-sync-v0 6.1.0+9ba00ebb04
|-- fabric-renderer-api-v1 5.0.1+84404cdd04
|-- fabric-renderer-indigo 2.0.1+84404cdd04
|-- fabric-rendering-data-attachment-v1 0.3.57+73761d2e04
|-- fabric-rendering-fluids-v1 3.1.18+7feeb73304
|-- fabric-rendering-v1 10.1.1+b874120c04
|-- fabric-resource-conditions-api-v1 5.0.13+203e6b2304
|-- fabric-resource-loader-v0 3.0.11+b1caf1e904
|-- fabric-screen-api-v1 2.0.37+7feeb73304
|-- fabric-screen-handler-api-v1 1.3.107+7feeb73304
|-- fabric-sound-api-v1 1.0.32+7feeb73304
|-- fabric-tag-api-v1 1.0.1+20ea1e2304
|-- fabric-transfer-api-v1 5.4.7+b1caf1e904
-- fabric-transitive-access-wideners-v1 6.3.2+56e78b9b04
- fabricloader 0.16.9
-- mixinextras 0.4.1
- fabricproxy-lite 2.9.0
-- com_moandjiezana_toml_toml4j 0.7.2
- fantasy 0.6.6+1.21.4
- farmy_feud ${version}
-- kdotjpg_open-simplex 2.0
- fortress 1.0.0
- game_parties 1.0.3
-- more_codecs 0.3.5+1.21.2
- gomoku 1.0
- infiniteparkour 1.0.0
- irritaterrun 1.0.0
- itemhunt 1.0
- java 21
- koth 1.0.0
- lastcard 1.0.0
- lavasurvival 1.1.0
- leukocyte 0.3.10+1.21.3
-- stimuli 0.5.0+1.21.3
- loopdeloop 1.2.2
- microbattle 1.0.0
- minecraft 1.21.4
- minefield 1.0.0
- nucleoid_creator_tools 0.2.2
|-- fabric-permissions-api-v0 0.3.3
|-- map_templates 0.2.1+1.21.3
-- server_translations_api 2.4.0+1.21.2-rc1
-- packet_tweaker 0.6.0-pre.1+1.21.2-pre3
- nucleoid_extras 1.3.2
- paintball 1.0.0
- parkourrun 1.0.0
- plasmid 0.6.3-build.4+1.21.4
|-- fabric-permissions-api-v0 0.3.3
|-- map-canvas-api 0.5.0+1.21.3
|-- map_templates 0.2.1+1.21.3
|-- more_codecs 0.3.5+1.21.2
|-- packet_tweaker 0.6.0-pre.1+1.21.2-pre3
|-- placeholder-api 2.5.1+1.21.3
|-- player-data-api 0.7.0+1.21.3
|-- predicate-api 0.6.0+1.21.2
|-- server_translations_api 2.4.0+1.21.2-rc1
| -- packet_tweaker 0.6.0-pre.1+1.21.2-pre3
|-- sgui 1.8.1+1.21.4
|-- sidebar-api 0.5.1+1.21.1
|-- stimuli 0.5.0+1.21.3
-- substrate 0.2.2+1.20.1
- player_roles 1.6.13
-- player_roles_api 1.6.13
- polymer-bundled 0.11.2+1.21.4
|-- polymer-autohost 0.11.2+1.21.4
| -- io_netty_netty-codec-http 4.1.82
|-- polymer-blocks 0.11.2+1.21.4
|-- polymer-common 0.11.2+1.21.4
| -- packet_tweaker 0.6.0-pre.1+1.21.2-pre3
|-- polymer-core 0.11.2+1.21.4
| |-- polymer-networking 0.11.2+1.21.4
| | -- polymer-common 0.11.2+1.21.4
| | -- packet_tweaker 0.6.0-pre.1+1.21.2-pre3
| -- polymer-registry-sync-manipulator 0.11.2+1.21.4
|-- polymer-resource-pack 0.11.2+1.21.4
| -- polymer-common 0.11.2+1.21.4
| -- packet_tweaker 0.6.0-pre.1+1.21.2-pre3
|-- polymer-resource-pack-extras 0.11.2+1.21.4
-- polymer-virtual-entity 0.11.2+1.21.4
-- polymer-common 0.11.2+1.21.4
-- packet_tweaker 0.6.0-pre.1+1.21.2-pre3
- quakecraft 1.7.7+1.21
- rocketspleef 0.1.2
-- kdotjpg_open-simplex 2.0
- sabotage 1.0.0
- sculkprison 1.0.0
- shardthief 1.0.0
- siege 1.0.1
- skywars 1.0.0-build.89
- snake 1.0.0
- snowballfight 1.0.0
- spleef 1.0.0
- styledchat 2.7.1+1.21.3
|-- fabric-permissions-api-v0 0.3.3
|-- placeholder-api 2.5.1+1.21.3
|-- player-data-api 0.7.0+1.21.3
-- predicate-api 0.6.0+1.21.2
- styledplayerlist 3.6.0+1.21.2
-- predicate-api 0.6.0+1.21.2
- survival-games 0.1.1
|-- dev_gegy_noise-composer 0.1.0
-- kdotjpg_open-simplex 2.0
- territorybattle 1.0.0
- the_towers 2.2.0
- totemhunt 1.0.0
- uhc 3.0.0
- volleyball 1.0.0
- wavedefense ${version}
-- kdotjpg_open-simplex 2.0
- werewolf 1.0.0
- withersweeper 1.0.0
Velocity Version
Velocity 3.4.0-SNAPSHOT (git-965db127-b454)
Additional Information
No response