BE players can not connect the server
Describe the bug
In the Bedrock server interface, information such as the server name and the number of players can be displayed. However, upon attempting to join the server, a message indicating the inability to connect to the world is shown.
If Geyser's debug output is enabled, the console will display that someone is pinging and that a connection attempt is being made. However, the attempt simply hangs without any further development or error messages being presented.
To Reproduce
Try to join the server use BE
Expected behaviour
Successfully join the server.
Screenshots / Videos
No response
Server Version and Plugins
AnimatedScoreboard, AuraSkills, AuthMe, BetterRTP, BlockLocker, CMILib, CoreProtect, CrossplatForms , DeluxeMenus, dynmap *EconomyAPI, Essentials, EssentialsAntiBuild, EssentialsChat, EssentialsProtect, EssentialsSpawn, flo odgate, Floodgate-Skript, Geyser-Spigot, GeyserHacks GeyserSkinManager, GraveStonesPlus, GrimAC, JukeBox, KcLoginGui, LiteCommandEditor, LiteSignIn, LuckP erms, momojs, Multiverse-Core Multiverse-Inventories, Multiverse-NetherPortals, NoteBlockAPI, PlaceholderAPI, Plan, PlugManX, Prism , ProtocolLib, Residence, ServerSigns SkinsRestorer, Skript, Tpa, Vault, ViaBackwards, ViaVersion
Geyser Dump
https://dump.geysermc.org/K7Uv7IzFWtBSYHdjGHqH6lFk515ckQNT
Geyser Version
2.4.2-b652 (git-master-b792f72)
Minecraft: Bedrock Edition Device/Version
1.21.2.02
Additional Context
The foundational configurations, including the port settings, are correctly established, and the port is operational as expected. Up until approximately one week ago, the Bedrock Edition was capable of successfully accessing the server without encountering any hindrances. Yet, this capability has since ceased. It should be noted that, barring any unforeseen automatic updates, there have been no deliberate plugin updates executed within this timeframe.
silence
Can you please use Wireshark to take a packet dump of someone attempting to connect? (on the server side)
Can you please use Wireshark to take a packet dump of someone attempting to connect? (on the server side)
I have already tried, and I found that at the end of the packets sent by the client attempting to connect to the world, there are a lot of hexadecimal zeros. I'm not sure if this is a normal situation
Could you please provide the pcap file?
Are you using a vanilla client to make these connections? Based on the capture you have provided, the client is not responding appropriately to the server after it sends Open Connection Reply 1. The correct response by the client here would be Open Connection Request 2. See https://wiki.vg/Raknet_Protocol#Open_Connection_Request_2.
Also, have to taken a capture on the client side to confirm that Open Connection Reply 1 is received by the client?
Are you using a vanilla client to make these connections? Based on the capture you have provided, the client is not responding appropriately to the server after it sends Open Connection Reply 1. The correct response by the client here would be Open Connection Request 2. See https://wiki.vg/Raknet_Protocol#Open_Connection_Request_2.
Also, have to taken a capture on the client side to confirm that Open Connection Reply 1 is received by the client?
I have indeed noticed this. Judging from the packet capture data from the client I'm sending now, the client has received the response from the server. However, it seems that the packets sent by the client after this are not being received by the server at all. Could this be the reason why I can't connect to the world? Why is this happening, and I'm not the only one who can't connect.
Also, my client is indeed the original version. 基岩调试(客户端.zip
Yeah, based on this it would seem that the client response (Open Connection Request 2) is being dropped somewhere between the client and the server. Does this occur when attempting to join from a client on the same network as the server? Have you tested with clients on networks other than the one in the most recent pcap, and if so is the result the same?
Yeah, based on this it would seem that the client response (Open Connection Request 2) is being dropped somewhere between the client and the server. Does this occur when attempting to join from a client on the same network as the server? Have you tested with clients on networks other than the one in the most recent pcap, and if so is the result the same?
Yes, I'm unable to connect regardless of which network I use, and it's the same for other players as well.
To whoever can look at this: It seems that the 2 commits to update to 1.21.21 and the one to fix ping, are the ones causing this issue. There is no 1.21.21 bedrock protocol which is confusing the client and server because 1.21.20 is the latest protocol.
1.21.21 and 1.21.20 share the same protocol. The first commit did have an issue because of the / character in the MOTD, however (now fixed). Regardless, the build before those commits are here: https://github.com/GeyserMC/Geyser/actions/runs/10411815722 if you believe these issues did not persist before.
1.21.21 and 1.21.20 share the same protocol. The first commit did have an issue because of the
/character in the MOTD, however (now fixed). Regardless, the build before those commits are here: https://github.com/GeyserMC/Geyser/actions/runs/10411815722 if you believe these issues did not persist before.
I am saying that I have tested b650 (working) and b651-b654 (not working) and recompiled current commit 2274377 and removed 1.21.21 and only let it send 1.21.20 and it allows joining again without timing out.
Actually, after some research, it just seems that because a slash was added to DEFAULT_BEDROCK_CODEC, it is freezing up somewhere else in geyser. When hardcoding 1.21.21 or 1.21.20 without the slash, it works with both versions using 1.21.21 bedrock edition client.
Can you send a Geyser dump from our latest master? The only conclusion I can come to at the moment is some weird JVM or locale behavior.
1.21.21 and 1.21.20 share the same protocol. The first commit did have an issue because of the character in the MOTD, however (now fixed). Regardless, the build before those commits are here: https://github.com/GeyserMC/Geyser/actions/runs/10411815722 if you believe these issues did not persist before.
/I am saying that I have tested b650 (working) and b651-b654 (not working) and recompiled current commit 2274377 and removed 1.21.21 and only let it send 1.21.20 and it allows joining again without timing out.
No way, I was having issues with not being able to connect to the server when I was using version b650 (master-7da1d7d). Later, I found out that there seemed to be an update that fixed the bug of not being able to connect to the server, so I updated. Initially, I thought updating would solve the problem, but the issue still persists; I still can't get in.
Can you send a Geyser dump from our latest master? The only conclusion I can come to at the moment is some weird JVM or locale behavior.
Ok https://dump.geysermc.org/jg9XisPCoi8Y5OCroiSOOHUMySz1zDol
I haven't encountered this issue after changing the server's hardware, and Bedrock Edition players were able to enter the server normally. However, the problem has resurfaced recently, presenting the same symptoms as before; players can see server population details before attempting to join but are then prompted that they cannot connect to the world upon entry. I've also tried updating to the latest version of Geyser, yet the problem persists. Additionally, the server core remains at version 1.20.4 Paper.
@dreamLXJ try using waterdog to proxy your player connections to geyser. Solved the problem for me. Waterdog -> Geyser -> Paper.
Given no recent activity on this issue, i'm going to close it as stale - if it still occurs, please let us know!