Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't switch to another Server #4191

Closed
EpicJosch opened this issue Oct 6, 2023 · 42 comments · Fixed by #4210
Closed

Can't switch to another Server #4191

EpicJosch opened this issue Oct 6, 2023 · 42 comments · Fixed by #4210
Labels
Suspected Server Behavior This probably isn't a Geyser bug but rather something the server is doing. Unconfirmed Bug/Not Currently Replicable The bug reported is unconfirmed or unable to be replicated.

Comments

@EpicJosch
Copy link

Describe the bug

When i join my bungeecord network everything works fine. But as soon as i switch the server i get disconnected and in the console there is the following error:

[16:08:43 INFO]: [/85.216.5.129:0|.Rotkauz] <-> DownstreamBridge <-> [lobby] has disconnected
[16:08:43 WARN] [Geyser-BungeeCord]: Downstream packet error! Unregistered serverbound packet class: com.github.steveice10.mc.protocol.packet.ingame.serverbound.player.ServerboundMovePlayerPosPacket
[16:08:43 WARN] [Geyser-BungeeCord]: Downstream packet error! Unregistered serverbound packet class: com.github.steveice10.mc.protocol.packet.ingame.serverbound.player.ServerboundPlayerCommandPacket
[16:08:43 WARN]: [/85.216.5.129:0|.Rotkauz] -> UpstreamBridge - bad packet, are mods in use!? No more bytes reading varint
[16:08:43 INFO]: [.Rotkauz] disconnected with: DecoderException : net.md_5.bungee.protocol.BadPacketException: No more bytes reading varint @ io.netty.handler.codec.MessageToMessageDecoder:98
[16:08:43 INFO] [floodgate]: Floodgate player logged in as .Rotkauz disconnected
[16:08:43 INFO] [Geyser-BungeeCord]: Rotkauz has disconnected from the Java server because of DecoderException : net.md_5.bungee.protocol.BadPacketException: No more bytes reading varint @ io.netty.handler.codec.MessageToMessageDecoder:98
[16:08:43 INFO]: [/85.216.5.129:0|.Rotkauz] -> UpstreamBridge has disconnected
[16:08:43 INFO]: [/85.216.5.129:0|.Rotkauz] <-> DownstreamBridge <-> [citybuild] has disconnected

This error does not happen always though. Sometimes i can switch the server without getting error but then when i move a bit on this server then switch server back to lobby and switch back to the other server again i get this error.

To Reproduce

  1. Connect to the network
  2. Switch server

Expected behaviour

  • There should be no Decoder Exception when switching server

Screenshots / Videos

grafik

Server Version and Plugins

Version: Well you cant use /version on bungeecord but im running "waterfall-1.20-544"
Plugins:
grafik

Geyser Dump

https://dump.geysermc.org/F2WzgeDWhU1qadbO8oJ9Tep27GbKHCse

Geyser Version

2.2.0-SNAPSHOT (git-master-82541a5) (Java: 1.20.2, Bedrock: 1.20.0/1.20.1 - 1.20.30/1.20.31)

Minecraft: Bedrock Edition Device/Version

1.20.32 (Windows 10 and iOS)

Additional Context

No response

@hasankayra04
Copy link
Contributor

Please send logs from both Waterfall and the server you are trying to connect to.

Upload your latest.log file to https://mclo.gs hit save and send the link here.

@Kas-tle
Copy link
Member

Kas-tle commented Oct 6, 2023

This issue is likely related to some bungee plugin that needs to be updated sending packets to the player while they are still in the config phase. Please try to reproduce without any plugins other than Geyser and Floodgate on the proxy.

@Kas-tle Kas-tle added the Waiting On Response When an issue or PR is waiting on a response from a [specific] person. label Oct 6, 2023
@EpicJosch
Copy link
Author

Waterfall Log: https://mclo.gs/qHhhvAI
Spigot Log: https://mclo.gs/jG2mMSe

@EpicJosch
Copy link
Author

With no others plugins on the proxy i have the same issue

@EpicJosch
Copy link
Author

Please send logs from both Waterfall and the server you are trying to connect to.

Upload your latest.log file to https://mclo.gs hit save and send the link here.

just posted the logs

@EpicJosch
Copy link
Author

Also everything worked fine until I updated to the latest build of papermc-1.20.1

From there on this issue started occurring

@EpicJosch
Copy link
Author

@hasankayra04 @Kas-tle i now updated via version and via backwards and now i dont get any error message on the server i try to switch to. I only get the error in the proxy and still the exact same issue..

@EpicJosch
Copy link
Author

Those are the new logs after veaversion update:

Waterfall: https://mclo.gs/NoqGd0z
Paper: https://mclo.gs/LqIqAVk

@EpicJosch
Copy link
Author

Switched to Geyser stand-alone now. Exact same error. Also same errors in logs.

@onebeastchris onebeastchris added More Info Needed More information is needed from the OP. Suspected Server Behavior This probably isn't a Geyser bug but rather something the server is doing. and removed Waiting On Response When an issue or PR is waiting on a response from a [specific] person. labels Oct 8, 2023
@MattTheTekie
Copy link

I get the same error but 45 instead.

@EpicJosch
Copy link
Author

@onebeastchris what more info do you need?

@EpicJosch
Copy link
Author

I guess the problem is solved. My problem was that i used bungee portals to switch server. I don't know why but that caused the issue. When i use /server it workes perfectly. But this should be solved anyway because its pretty bad if it does not work with portals...

@EpicJosch
Copy link
Author

I found out that this issue only occurres when I jump into the portal. When I walk in straight then the error is not occurring.

@onebeastchris
Copy link
Member

Well, as Kastle already mentioned (#4191 (comment)), it's likely an issue where said plugin might be sending data during the configuration phase instead of the play phase, which leads to Geyser's downstream error. This could be an issue with BungeeCord (if e.g. said portals plugin is using bungee api which might mess with configuration states improperly), or with how the plugin manually sends packets - in any case, you may want to try & attempt to reproduce that issue with a 1.20.2 Java client and reach out to that plugins author.

@EpicJosch
Copy link
Author

Well fair enough..

@EpicJosch
Copy link
Author

No. This issue is NOT occuring with an 1.20.2 Java Client. So it is an Geyser issue

@onebeastchris onebeastchris added Unconfirmed Bug/Not Currently Replicable The bug reported is unconfirmed or unable to be replicated. and removed More Info Needed More information is needed from the OP. labels Oct 9, 2023
@EpicJosch
Copy link
Author

I tried again and now I'm also getting this issue when walking normal in the portal. So same problem again. Just don't work..

@EpicJosch
Copy link
Author

We can't say it's because of other plugins since it only occurres on bedrock. Also a month ago server switching worked perfectly fine on bedrock also with jumping in portals..

@EpicJosch
Copy link
Author

EpicJosch commented Oct 9, 2023

I tested again and using the built in /server command also causes the issue.

@EpicJosch
Copy link
Author

Okay see I REALLY don't know what I should do to fix this @onebeastchris I tried everything! I even ran the server with NO plug-ins except geyser and floodgate. And this exception just keeps occurring. I even tried multiple different paper and waterfall builds but still always the same issue. Really need some help here!

@MattTheTekie
Copy link

Okay see I REALLY don't know what I should do to fix this @onebeastchris I tried everything! I even ran the server with NO plug-ins except geyser and floodgate. And this exception just keeps occurring. I even tried multiple different paper and waterfall builds but still always the same issue. Really need some help here!

same here

@MattTheTekie
Copy link

It's really annoying.

@TylerJohnson177
Copy link

I am having the exact same issue with my bungeecord server network. At least for me, using /server servername works fine. The issue only arises when I try to switch to a different server via entering a portal. I am using the latest version of SimplePortals plugin. I would say that around 50% to 70% of the time, bedrock players get this error when switching servers via a portal.

@MattTheTekie
Copy link

I am having the exact same issue with my bungeecord server network. At least for me, using /server servername works fine. The issue only arises when I try to switch to a different server via entering a portal. I am using the latest version of SimplePortals plugin. I would say that around 50% to 70% of the time, bedrock players get this error when switching servers via a portal.

I'm having roughly the same error margin.

@EpicJosch
Copy link
Author

@TylerJohnson177

I was also using SimplePortals before. With CMI it worked a little bit better but not nearly a solution.. i switched to NPC's now (Plugin: Citizens) with the NPC it works 90% of the time. I testet a few times with NPC's but when i jump and click the npc at the same time (running to npc while jumping) the same error occures again. Its a workaround but this issue really needs to be fixed!

@Kas-tle
Copy link
Member

Kas-tle commented Oct 9, 2023

It is still likely a Java issue but is more likely to occur with Geyser since it on average tends to remain in the config phase longer than the normal Java client. There's nothing we can do about this. And when a client is in the config phase, a plugin should not be sending it packets that it's not yet ready to receive. Otherwise bungee will throw the error seen here.

These plugins need to be updated to not send packets to the client when it is in the config phase.

@Kas-tle Kas-tle closed this as not planned Won't fix, can't repro, duplicate, stale Oct 9, 2023
@EpicJosch
Copy link
Author

Did you even read my comments? I tried it with NO PLUG-INS installed but geyser and floodgate and it still occurred. So there are no plug-ins sending packets in config phase!

@EpicJosch
Copy link
Author

And also as I said a month ago it worked with SimplePortals!

@Kas-tle
Copy link
Member

Kas-tle commented Oct 9, 2023

Then SimplePortals is trying to send packets before it is safe to do so. Please open an issue with them. One month ago Geyser was still on 1.20.1 so there was no config phase.

@MattTheTekie
Copy link

Then SimplePortals is trying to send packets before it is safe to do so. Please open an issue with them. One month ago Geyser was still on 1.20.1 so there was no config phase. I'm using https://www.spigotmc.org/resources/deluxehub-3-professional-hub-management.49425/

@MattTheTekie
Copy link

Did you even read my comments? I tried it with NO PLUG-INS installed but geyser and floodgate and it still occurred. So there are no plug-ins sending packets in config phase!

I've had the same issue. I did try it clean before a few times

@TylerJohnson177
Copy link

I don't think SimplePortals has anything to do with this issue. I was able to replicate the problem by teleporting myself 500 blocks in the sky and by running "/server servername" mid free fall. This may be an issue with Bungeecord/Waterfall, but I was unable to replicate it on a Java 1.20.2 client. I tried to replicate it about 50 times.

When I use the 1.20.1 version of Geyser Stand-alone (which supports bedrock 1.20.30) the issue does not occur.

@onebeastchris
Copy link
Member

That's because 1.20.1 doesn't have the Configuration/Play phase setup that 1.20.2 introduced.
Geyser is receiving play-phase packets from bungee/other plugins while being in the configuration phase (again, after the server sent us that phase).
This could be a BungeeCord issue, or a plugin sending packets manually. If you look at the existing issues with proxies on 1.20.2 - heck, the reason why Velocity is delayed - it's due to this newly added complexity.

@MattTheTekie
Copy link

That's because 1.20.1 doesn't have the Configuration/Play phase setup that 1.20.2 introduced. Geyser is receiving play-phase packets from bungee/other plugins while being in the configuration phase (again, after the server sent us that phase). This could be a BungeeCord issue, or a plugin sending packets manually. If you look at the existing issues with proxies on 1.20.2 - heck, the reason why Velocity is delayed - it's due to this newly added complexity.

Can someone open a issue with BungeeCord?

@MattTheTekie
Copy link

I think I found the issue
SpigotMC/BungeeCord#3542

@MattTheTekie
Copy link

@Kas-tle The project needs to implement around this limitation or this will cause issues. Check the linked issue.

@MattTheTekie
Copy link

The fact that it doesn't happen without geyser and works fine on normal java, means it's a geyser implementation issue.

@Kas-tle
Copy link
Member

Kas-tle commented Oct 12, 2023

On closer examination if this is the fault of the movement packets we can probably block sending them.

Kas-tle added a commit to Kas-tle/Geyser that referenced this issue Oct 12, 2023
@Kas-tle Kas-tle linked a pull request Oct 12, 2023 that will close this issue
@Kas-tle
Copy link
Member

Kas-tle commented Oct 12, 2023

This should be resolved by #4210
Please feel free to test with the artifacts here: https://github.com/GeyserMC/Geyser/actions/runs/6491305641
I am sorry for misunderstanding the issue.

Kas-tle added a commit that referenced this issue Oct 12, 2023
@MattTheTekie
Copy link

This should be resolved by #4210 Please feel free to test with the artifacts here: https://github.com/GeyserMC/Geyser/actions/runs/6491305641 I am sorry for misunderstanding the issue.

I'l test it today, and let you know.

@MattTheTekie
Copy link

It seems to work for me

@MattTheTekie
Copy link

ty

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Suspected Server Behavior This probably isn't a Geyser bug but rather something the server is doing. Unconfirmed Bug/Not Currently Replicable The bug reported is unconfirmed or unable to be replicated.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants