Geyser icon indicating copy to clipboard operation
Geyser copied to clipboard

BE players can not connect the server

Open dreamLXJ opened this issue 1 year ago • 17 comments

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.

dreamLXJ avatar Aug 22 '24 05:08 dreamLXJ

silence

TheDocu avatar Aug 22 '24 10:08 TheDocu

Can you please use Wireshark to take a packet dump of someone attempting to connect? (on the server side)

Kas-tle avatar Aug 22 '24 14:08 Kas-tle

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

dreamLXJ avatar Aug 22 '24 18:08 dreamLXJ

Could you please provide the pcap file?

Kas-tle avatar Aug 22 '24 19:08 Kas-tle

您能否提供 pcap 文件?

sure,pls 基岩调试.zip

dreamLXJ avatar Aug 23 '24 06:08 dreamLXJ

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?

Kas-tle avatar Aug 23 '24 14:08 Kas-tle

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

dreamLXJ avatar Aug 23 '24 16:08 dreamLXJ

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?

Kas-tle avatar Aug 23 '24 18:08 Kas-tle

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.

dreamLXJ avatar Aug 24 '24 06:08 dreamLXJ

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.

proferabg avatar Aug 24 '24 19:08 proferabg

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.

Camotoy avatar Aug 24 '24 19:08 Camotoy

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.

proferabg avatar Aug 24 '24 19:08 proferabg

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.

proferabg avatar Aug 24 '24 20:08 proferabg

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.

Camotoy avatar Aug 24 '24 20:08 Camotoy

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.

dreamLXJ avatar Aug 25 '24 08:08 dreamLXJ

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

dreamLXJ avatar Aug 25 '24 08:08 dreamLXJ

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 avatar Sep 28 '24 17:09 dreamLXJ

@dreamLXJ try using waterdog to proxy your player connections to geyser. Solved the problem for me. Waterdog -> Geyser -> Paper.

Yexeed avatar Oct 24 '24 17:10 Yexeed

Given no recent activity on this issue, i'm going to close it as stale - if it still occurs, please let us know!

onebeastchris avatar May 16 '25 14:05 onebeastchris