WiIIiam278/HuskHomes

Interserver dimension teleportation if not in the same dimension of the last deconnection makes the players stuck in a voidspace between 2 dimensions

Hysako opened this issue · 2 comments

Infos about the server where the problem occured:

https://tropimon.fr/
Tropimon is a cobblemon server with pretty much no mods except cobblemon and our features.
We use a velocity proxy on fabric 1.20.1
Our infrastructure is designed in a way that players very often switchs from one to an other server seemlessly. (Like moving to the towns servers to the ressources servers)

Details about the issue:

If a player disconnect/move from a server A (in let's say the nether) then try to teleport via a tpa or home from a server B to the server A back again but in the overworld. Since the player left in the nether and is now trying to go to the overworld of this server he ends up being stuck in the two worlds, like a void space where its' very glitchy and he is technically in both. And only a server restart can fix those guys for this server.

We can see the players stuck in this state in the two dimensions,
Here are some screenshots of what is experiencing the player stuck:
2024-08-01_19 39 36
2024-08-01_19 39 29
Sometime the player simply is in some sort of void.

This issue is very problematic for us because we suspect it for being the cause of crashes, leading to other desync problems (we had a lot of problems after with pokemon sync when the players is experiencing this issue.) So we simply can't let the players use teleportations and homes, otherwise we have no issue so it's quite certain that nothing else is responsible. Thanks for taking the time to read this and sorry for my english, if you are willing to get more informations or to conduct tests on our server feel free to contact me on discord: Hysako

Mm yeah so there's a nonzero chance this is an issue with the protocol structure of proxies/velocity with fabric and the dimensions API as awhole, will require some R&D perhaps.

I've looked into this and I'm not sure what exactly I can do to solve it, I think it may require a bit of a lower-level deep dive into how the Fabric Dimensions API and FabricProxyLite interact.