GeyserMC / Geyser

A bridge/proxy allowing you to connect to Minecraft: Java Edition servers with Minecraft: Bedrock Edition.
https://geysermc.org
MIT License
4.74k stars 682 forks source link

Bedrock players crashing immediately after joining #1497

Closed Liftyee closed 3 years ago

Liftyee commented 4 years ago

Describe the bug

Bedrock on mobile players' apps crash immediately after the world finishes loading. No error message is displayed, the phone just quits to the home screen. Reopening Minecraft starts it as normal, but the bug repeats itself.

Both people telling me are using iPhones. For one of them, using an iPhone XR, the bug fixed itself after trying a few times but the other iPhone XR did not fix. I can't connect at all with my Android, but that's an unrelated problem I'll fix later.

To Reproduce

  1. Open Minecraft Bedrock Edition app on phone
  2. Try and join Geyser server
  3. Wait for the loading screen to finish
  4. See a short flash of world
  5. App crashes

Expected behavior

Bedrock players are able to join and play as normal without app crashing.

Screenshots / Videos

Server Version

[21:32:44 INFO]: This server is running Paper version git-Paper-259 (MC: 1.16.4) (Implementing API version 1.16.4-R0.1-SNAPSHOT)
[21:32:44 INFO]: Checking version, please wait...
[21:32:44 INFO]: Previous version: git-Paper-220 (MC: 1.16.3)
[21:32:44 INFO]: You are 2 version(s) behind```

**Geyser Version**
<!--- Give us the exact build number as well as branch if applicable. Saying "latest" does not help us at all. This info can be obtained from `/geyser version`.Please also include if you are running the standalone version, or specify which plugin version you are using. If your issue is a connection problem, please specify if you are using the Floodgate plugin. -->
```[22:09:29 INFO]: This server is running Geyser version 1.1.0 (git-master-ea52107) (Java: 1.16.4, Bedrock: 1.16.0 - 1.16.20)                                     [22:09:29 INFO]: Checking version, please wait...
[22:09:29 INFO]: No updates available.

Geyser-Spigot

Minecraft: Bedrock Edition Version

Bedrock client versions 1.16.40 and 1.16.50

Additional Context

I recently updated Paper and the Geyser plugin to 1.16.4. Before this update Bedrock players could join fine, only broke after the update. https://dump.geysermc.org/3GIqZ1MHaoBaTEOPQjRMUW9v2io6txmu I have some plugins that I haven't gotten round to updating yet. Downgrading the server back to 1.16.3 is not an option because the Bedrock players have no way to downgrade their client, and it just says 'Outdated server'

Liftyee commented 4 years ago

Thanks for any help.

Camotoy commented 4 years ago

This may be related to a recent string of crashes we've had surrounding scoreboards. Try disabling any scoreboard features you might have. You can use the ViaVersion + ViaBackwards plugins to allow Geyser to join with an older version.

DanielKaleby commented 4 years ago

Describe the bug

Bedrock on mobile players' apps crash immediately after the world finishes loading. No error message is displayed, the phone just quits to the home screen. Reopening Minecraft starts it as normal, but the bug repeats itself.

Both people telling me are using iPhones. For one of them, using an iPhone XR, the bug fixed itself after trying a few times but the other iPhone XR did not fix. I can't connect at all with my Android, but that's an unrelated problem I'll fix later.

To Reproduce

  1. Open Minecraft Bedrock Edition app on phone
  2. Try and join Geyser server
  3. Wait for the loading screen to finish
  4. See a short flash of world
  5. App crashes

Expected behavior

Bedrock players are able to join and play as normal without app crashing.

Screenshots / Videos

Server Version

[21:32:44 INFO]: This server is running Paper version git-Paper-259 (MC: 1.16.4) (Implementing API version 1.16.4-R0.1-SNAPSHOT)
[21:32:44 INFO]: Checking version, please wait...
[21:32:44 INFO]: Previous version: git-Paper-220 (MC: 1.16.3)
[21:32:44 INFO]: You are 2 version(s) behind```

**Geyser Version**
<!--- Give us the exact build number as well as branch if applicable. Saying "latest" does not help us at all. This info can be obtained from `/geyser version`.Please also include if you are running the standalone version, or specify which plugin version you are using. If your issue is a connection problem, please specify if you are using the Floodgate plugin. -->
```[22:09:29 INFO]: This server is running Geyser version 1.1.0 (git-master-ea52107) (Java: 1.16.4, Bedrock: 1.16.0 - 1.16.20)                                     [22:09:29 INFO]: Checking version, please wait...
[22:09:29 INFO]: No updates available.

Geyser-Spigot

Minecraft: Bedrock Edition Version

Bedrock client versions 1.16.40 and 1.16.50

Additional Context

I recently updated Paper and the Geyser plugin to 1.16.4. Before this update Bedrock players could join fine, only broke after the update. https://dump.geysermc.org/3GIqZ1MHaoBaTEOPQjRMUW9v2io6txmu I have some plugins that I haven't gotten round to updating yet. Downgrading the server back to 1.16.3 is not an option because the Bedrock players have no way to downgrade their client, and it just says 'Outdated server'

I'm facing the same problem, I have no idea what I should do to fix it..

Camotoy commented 4 years ago

If you control the server, look at my comment above.

I believe there is a fix incoming tomorrow either way.

DanielKaleby commented 4 years ago

(And it is worth remembering that the error happens both when using the plugin installed on the server, and when using StandAlone..)

Camotoy commented 4 years ago

That is to be expected.

Anyone affected by this, please try #1446. Feel free to join the Geyser Discord for help downloading.

cvpv045 commented 4 years ago

Hello are you using waterdog? I am having the same issue

Camotoy commented 4 years ago

Are you using the latest Geyser?

cvpv045 commented 4 years ago

Yes i just updated need to test it tho ill let you know if we still have crashes

cvpv045 commented 4 years ago

Not using any scoreboard plugin and was still crashing before i updated

cvpv045 commented 4 years ago

Still crashing

Camotoy commented 4 years ago

Please send a Geyser dump, any plugins on the backend server, your server version, and the Bedrock client version(s).

cvpv045 commented 4 years ago

https://dump.geysermc.org/OpGNoTb4Fn2cQ4n5jdyZgJoFIjGp0v07

....=>.... [21:58:16 INFO]: This server is running Paper version git-Paper-240 (MC: 1.16.3) (Implementing API version 1.16.3-R0.1-SNAPSHOT)

.... [21:58:16 INFO]: Checking version, please wait...

.... [21:58:16 INFO]: You are 13 version(s) behind

....=>.... [21:58:39 INFO]: Plugins (25): Citizens, CoreProtect, EpicRename, EpicWorldGenerator, Essentials, EssentialsChat, EssentialsSpawn, floodgate-bukkit, Geyser-Spigot, GriefPrevention, HolographicDisplays, HolographicExtension, mcMMO, MVdWPlaceholderAPI*, PlaceholderAPI, ProtocolLib, ShopGUIPlus, SilkSpawners, UltraPermissions, UltraPunishments, Vault, ViaVersion, WG-GUI, WorldEdit, WorldGuard

Bedrock version 1.16.40

cvpv045 commented 3 years ago

Still not fixed sorry

ClayCoffee commented 3 years ago

Still not fixed

Camotoy commented 3 years ago

@ClayCoffee @cvpv045 could both of you please try these steps after updating to the latest Geyser build:


If you have a possible plugin interfering with Geyser or Floodgate, follow these steps to find the culprit plugin:
- Temporarily remove/move half of your plugins from your server's plugins folder.
- If the problem persists, remove another half.
- If the problem goes away, swap that half of your plugins with the other half.
- Keep repeating this pattern, this time with the half that exhibits the problem, until you find your problematic plugin.```
Camotoy commented 3 years ago

Any updates? Otherwise, I will close this issue.

Noxillio commented 3 years ago

I have found a possible definite cause for this.

If you're using any kind of plugin that tries to add text underneath a player name tag, try disabling it and then report back. I just found an issue where having TAB place text underneath player name tags would result in Bedrock players crashing upon login. If you end up enabling this feature to test it while a bedrock player is online then the results can be intermittent, so when testing you can get a more reliable result if you log off from bedrock first, enable the feature in TAB's config.yml, then log back on from bedrock, which results in a crash.

Camotoy commented 3 years ago

Thank you!

Noxillio commented 3 years ago

Thank you!

Lol, I sent a reply mistaking you for the author. Oopsies.

If the TAB developer is unable to fix this on their end would it be possible to have it patched in Geyser? I've actually only tested this issue with TAB, so if there's another plugin that tries to accomplish this too then I'll be happy to test it just to be sure that this is really the cause. It already seems like Bedrock doesn't support adding text under player name tags, so I'm almost positive that's the actual cause, and I assume it could be fixed in Geyser somehow.

Camotoy commented 3 years ago

This is not TAB's issue to deal with; it's ours, since it (presumably) only affects Bedrock players. We will absolutely fix this, but our hands are rather tied up right now so there's no ETA on when that will be.

Euro-pol commented 3 years ago

Same, i dont use any Scoreboard plugins and i dont use any TAB like plugins. Latest geyser

Camotoy commented 3 years ago

@timof121 please provide a Geyser dump.

Run "geyser dump" (server console) / "/geyser dump" (ingame chat) on your Geyser instance or server, then copy the link it will give you and paste it here. A Geyser dump is a way of providing us with a bunch of useful information about your server and Geyser config. This doesn't include any IPs or sensitive data.

Noxillio commented 3 years ago

Same, i dont use any Scoreboard plugins and i dont use any TAB like plugins. Latest geyser

I said before it can be any plugin that tries to add text under player name tags... just keep that in mind. It doesn't have to be actually tab list related.

Euro-pol commented 3 years ago

Same, i dont use any Scoreboard plugins and i dont use any TAB like plugins. Latest geyser

I said before it can be any plugin that tries to add text under player name tags... just keep that in mind. It doesn't have to be actually tab list related.

Yeah ik i dint use any plugin that add text

Euro-pol commented 3 years ago

@timof121 please provide a Geyser dump.

Run "geyser dump" (server console) / "/geyser dump" (ingame chat) on your Geyser instance or server, then copy the link it will give you and paste it here. A Geyser dump is a way of providing us with a bunch of useful information about your server and Geyser config. This doesn't include any IPs or sensitive data.

https://dump.geysermc.org/35yHeqBdSRCxH0Fw35MTsZM81iYuo88U Also i use PaperMC 1.12.2

Camotoy commented 3 years ago

@Noxillio can you provide exactly how to replicate it? I'm having a little bit of trouble myself.

Noxillio commented 3 years ago

@Noxillio can you provide exactly how to replicate it? I'm having a little bit of trouble myself.

So it started out with me moving TAB to my Bungee (I'm in the process of getting Bungee set up). It generated the default configs, and I ended up getting this crash issue. I took my old config, which didn't have the issue, and tried every single option one by one in the new config, everything that was different, until I could reproduce the bug. The responsible config option happened to be classic-vanilla-belowname. I tested this several times by disabling and re-enabling it using the enabled: true|false setting. Seeing as the problem only occurred for Bedrock, and I've never seen text underneath a player's name to begin with on Bedrock, the logical conclusion for me is that anything trying to add text underneath a player's name would cause this crash.

Ultimately, to reproduce as I did, you would want to start a server with TAB installed and running with default config. Then, while making sure a Java player is connected, with text under their name as the plugin does by default, log in from bedrock. The Java player may need to be visible to the Bedrock player (or at least nearby) in order to trigger the crash from the text not being able to show.

Camotoy commented 3 years ago

The default config on Paper leads to me not crashing. (Notably though I am not seeing any text underneath a player)

Noxillio commented 3 years ago

The default config on Paper leads to me not crashing. (Notably though I am not seeing any text underneath a player)

I'm.... wicked confused. Let me tell you the process I just went through and my results:

  1. Set up a brand new server locally with the latest Tuinity jar.
  2. Drop TAB, Geyser, and Floodgate into plugins folder. Reboot.
  3. Log in from Bedrock.

After logging in from bedrock, with no other user on, I crashed immediately.

  1. Stopped server.
  2. Renamed TAB so it wouldn't be loaded. I just add .disabled onto the end.
  3. Started server again.
  4. Joined from Bedrock. Worked.
  5. Joined from Java. Worked.
  6. Stopped server.
  7. Renamed TAB again so it would load in.
  8. Joined from Bedrock. Worked.
  9. Joined from Java. Worked.
  10. Restarted server.
  11. Joined from Java.
  12. Joined from Bedrock. Crashed.

Here's a log of the last crash and how it happened, in case that's helpful at all. The crash occurs right before it says that I timed out. The game crashes there and the only culprit I've been able to find over the past couple days is that one line I mentioned from the TAB config.

[01:15:54 INFO]: [Geyser-Spigot] /192.168.1.150:52200 tried to connect!
[01:15:55 INFO]: [Geyser-Spigot] Player connected with username Noxillio
[01:15:57 INFO]: [Geyser-Spigot] Attempting to login using floodgate mode... authentication will be encrypted.
[01:15:57 INFO]: [Geyser-Spigot] Loaded Floodgate key!
[01:15:57 INFO]: [Geyser-Spigot] Noxillio (logged in as: Noxillio) has connected to remote java server on address 192.168.1.150
[01:15:57 INFO]: [floodgate-bukkit] Added *Noxillio 00000000-0000-0000-0009-01fe6a2eec9f
[01:15:57 INFO]: UUID of player *Noxillio is 00000000-0000-0000-0009-01fe6a2eec9f
[01:15:57 INFO]: [Geyser-Spigot] Registering bedrock skin for *Noxillio (00000000-0000-0000-0009-01fe6a2eec9f)
[01:15:57 INFO]: [Geyser-Spigot] Unable to load bedrock skin for '*Noxillio' as they are likely using a customised skin
[01:15:57 INFO]: *Noxillio joined the game
[01:15:57 INFO]: [Geyser-Spigot] Spawned player at 202.742 64 -4.936
[01:15:57 INFO]: *Noxillio[/192.168.1.150:60746] logged in with entity id 461 at ([world]202.74153, 64.0, -4.936447)
[01:16:33 INFO]: [Geyser-Spigot] Bedrock user with ip: /192.168.1.150 has disconnected for reason TIMED_OUT
[01:16:33 INFO]: [Geyser-Spigot] Noxillio has disconnected from remote Java server on address 192.168.1.150 because of TIMED_OUT
[01:16:33 INFO]: *Noxillio lost connection: Disconnected
[01:16:33 INFO]: *Noxillio left the game
Camotoy commented 3 years ago

Latest Tuinity, Geyser, Floodgate, and TAB 2.8.9 from https://www.spigotmc.org/resources/tab-1-5-x-1-16-4.57806/ - still no crash. I tested on multiple platforms as well. Notably, I'm not seeing anything under the Java player from Bedrock, but I'm seeing the "20 Health" under the Bedrock player from Java.

Perhaps a TAB update changed this, or the premium version makes a difference? Which version are you on?

Noxillio commented 3 years ago

Latest Tuinity, Geyser, Floodgate, and TAB 2.8.9 from https://www.spigotmc.org/resources/tab-1-5-x-1-16-4.57806/ - still no crash. I tested on multiple platforms as well. Notably, I'm not seeing anything under the Java player from Bedrock, but I'm seeing the "20 Health" under the Bedrock player from Java.

Perhaps a TAB update changed this, or the premium version makes a difference? Which version are you on?

I am using premium, and the latest version of everything. However, I just tested with the free version. Deleted TAB's folder, and premium jar, added free version in. I connected from Java, then from Bedrock, and the crash happened as soon as the chunks loaded in.

After disabling classic-vanilla-belowname the crash did not occur.

Camotoy commented 3 years ago

What Bedrock platform/version are you on?

Noxillio commented 3 years ago

What Bedrock platform/version are you on?

Windows 10 Edition, v1.16.201 I have another idea, maybe try hitting the Java player from bedrock? Something that will make their health change and the player name tag to update?

Camotoy commented 3 years ago

Unfortunately, your suggestion did not work for me.

Camotoy commented 3 years ago

Any updates from anyone?

NEZNAMY commented 3 years ago

Anyone experiencing this with TAB is welcome to message me, I have an idea how to make progress on this.

Chew commented 3 years ago

No one has provided any updates, which is a very good sign! Going to assume we're all good to go here. If you continue to have issues, feel free to reply or make a new issue, just provide as much info as possible. Thank you to everyone who helped us hunt this down!

Lucaslah commented 3 years ago

I'm still having this issue Geyser Version: 1.4.1-SNAPSHOT (git-master-a947f95) Bungeecord version: 1.17-R0.1-SNAPSHOT:5db276e Geyser Dump: https://dump.geysermc.org/7BRae24dK5mMoawKPcm32a0W3glaACyb

I do have a scoreboard

DarthSandpaper commented 1 year ago

Having this issue. Still crashed after I removed the TabList plugin. Geyser Dump: https://dump.geysermc.org/ts7qVRAESgRMivnL0gb1j63MerSC5ZV3

Edit: twas fixed in recent build.