ViaBackwards icon indicating copy to clipboard operation
ViaBackwards copied to clipboard

`DecoderException` when connecting 1.20.1 client (Quilt, ViaFabricPlus + ViaBackwards) to 1.20.2 server (Fabric, no Via*)

Open Makonede opened this issue 2 years ago • 3 comments

'/viaversion dump' Output

https://dump.viaversion.com/d386e7ac9d2745d4b139dd5d5c9f4534ee94e93cc9a029b86de7644137f25290

Console Error

Internal Exception: io.netty.handler.codec.DecoderException: java.io.IOException: Packet 0/4 (class_2616) was larger than I expected, found 2 bytes extra whilst reading packet 4

Bug Description

Joining a 1.20.2 Fabric server (no Via*) with a 1.20.1 Quilt client (ViaFabricPlus 2.9.5 + ViaBackwards 4.9.1–4.9.2-SNAPSHOT+95, or ViaFabricPlus-provided ViaBackwards) throws an io.netty.handler.codec.DecoderException.

Steps to Reproduce

  1. Join a 1.20.2 server with a 1.20.1 Quilt client, with ViaFabricPlus 2.9.5 and ViaBackwards 4.9.1–4.9.2 installed (or ViaFabricPlus-provided ViaBackwards).
  2. An io.netty.handler.codec.DecoderException is thrown.

Expected Behavior

The client joins the server.

Additional Server Info

No response

Checklist

  • [ ] Via plugins are only running on EITHER the backend servers (e.g. Paper) OR the proxy (e.g. BungeeCord), not on both.
  • [X] I have included a ViaVersion dump.
  • [X] If applicable, I have included a paste (not a screenshot) of the error.
  • [x] I have tried a build from https://ci.viaversion.com/ and the issue still persists.

Makonede avatar Dec 17 '23 02:12 Makonede

Error: Invalid or missing dump

Barvalg avatar Dec 17 '23 02:12 Barvalg

Error: Invalid or missing dump

https://dump.viaversion.com/d386e7ac9d2745d4b139dd5d5c9f4534ee94e93cc9a029b86de7644137f25290

Makonede avatar Dec 19 '23 21:12 Makonede

Either caused by quilt directly or a third-party mod from the fabric server, please perform a binary search to see what causes viafabricplus to suddenly fail.

Kichura avatar Dec 23 '23 12:12 Kichura

Close as 1.20.1 is not supported by Via mods anymore

HowardZHY avatar Mar 24 '24 16:03 HowardZHY

Reopen this, closing issues like these due to lack of support makes it permanently impossible to make connections between affected versions. While legacy versions don't need to be maintained fully, they should be in a fundamentally functioning state before EOL.

Makonede avatar Mar 25 '24 03:03 Makonede

Due to viafabricplus making frequent changes to it's internal classes, it makes it difficult to backport to 1.20.1 without also including viabackwards support (which isn't part of VFP's goal) as instead it's only focusing on latest version similar to multiconnect,

and second; Quilt basically has no 1.20.4 support of any kind and it's development has sadly slowed down by a ton meaning there is essentially no reason to port to it - therefore this closure is valid.

Kichura avatar Mar 25 '24 05:03 Kichura

This issue occurs with ViaFabric as well. It is not a ViaFabricPlus-specific issue.

Makonede avatar Mar 25 '24 16:03 Makonede

it's because viafabric does not support older minor versions of any kind, but latest minor versions are accepted which means you can use 1.19.4 with viabackwards with no problem.

Kichura avatar Mar 25 '24 16:03 Kichura

Why not?

Makonede avatar Mar 25 '24 22:03 Makonede

Why not?

Similar answer; It's because of internal class changes and requires backporting. (And viafabric at the moment has no LTS plans whatsoever)

EDIT: If you do want to require a workaround, Use VIAaaS/ViaProxy.

Kichura avatar Mar 25 '24 22:03 Kichura

The problem isn't with LTS, it's that it fundamentally does not work in its current state. You are ending support for a version that never worked, and by dismissing the issue due to difficulty of backporting or refusal to make even one change that might fix this issue on an older version, you are ensuring that it never will.

Makonede avatar Mar 25 '24 22:03 Makonede

@Makonede Does this issue also appear when using the ViaProxy (https://github.com/ViaVersion/ViaProxy)? I feel like this is an issue of Fabric's/Quilt's Networking API sending data which Via can't handle / doesn't translate properly, which we generally don't care about (as ViaVersion's job is to translate the Minecraft protocol and not third-party protocol related stuff)

FlorianMichael avatar Mar 26 '24 10:03 FlorianMichael

No, but why would it only work with ViaProxy? What if I wanted to mix into network code on the client, which ViaProxy doesn't seem to support?

Makonede avatar Mar 27 '24 01:03 Makonede

Because ViaFabricPlus is mixing into the client network code, while ViaProxy is external. Which mods do you have installed on both server and client? We have a ViaFabricPlus addon to fix issues like that in common mods: https://github.com/ViaVersionAddons/ViaVanillaPlus

FlorianMichael avatar Mar 27 '24 09:03 FlorianMichael

What I want to do is add my own mixins to the client network code. ViaProxy does not support this, and ViaFabric/Plus have this issue, which makes it impossible to do this at all with these versions.

Makonede avatar Mar 27 '24 22:03 Makonede