#"Failed to Encrypt Message" error for all Bedrock clients

110 messages · Page 1 of 1 (latest)

queen pawn
#

Using Bungeecord Build#488 and Floodgate Build#96

This error is persistent across all Bedrock clients: iPad, Windows, and Switch connections. All have connected relatively easily in the past, until I applied Build#488 today.

Error: java.lang.NullPointerException: Cannot invoke "org.geysermc.geyser.skin.FloodgateSkinUploader.getId()" because "skinUploader" is null

cold arrowBOT
cold arrowBOT
lavish vapor
cold arrowBOT
# lavish vapor !!logs please share a full server log, not just a snippet

An entire log file is a very useful way of debugging any issues with plugins. Sometimes a snippet of a log doesn't tell the whole story!

You can upload your log file into this channel, or you can use https://mclo.gs/ to censor all IPs present in your log.
For BungeeCord (not Waterfall) there is a proxy.log.0 file in the root and for everything else it is latest.log in logs folder.

queen pawn
cold arrowBOT
# queen pawn
Found errors in the log!

See below for details and possible fixes

ClosedChannelException

This error can be caused by various things. Please upload your logs using https://mclo.gs/ and paste them in #support.
If you are getting this error on a proxy server such as Velocity or BungeeCord, check your backend server logs for errors.

Outdated Bedrock client

Your issue is caused by your Bedrock client being outdated, please update it.

Address already in use

This means something (likely another instance of Geyser) is running on the port you have specified in the config. Please make sure you close all applications running on this port. If you don't recall opening anything, usually restarting your computer fixes this.
If you are using a server hosting provider and get this error, you likely need to use a specific port allocated to you. See the setup guide for instructions on how to configure Geyser.

Outdated Geyser proxy

Your Geyser plugin is outdated. Please update Geyser!
To update Geyser or Floodgate, shut down your server, run !download geyser or !download floodgate in #bot-spam, and replace your current jar file with the new version from the link.
You do not need to remove or modify your config when updating Geyser or Floodgate.

io.netty.handler.codec.DecoderException: java.lang.IndexOutOfBoundsException: index: 3, length: 47 (expected: range(0, 3))

Unknown fix!
Class: PacketBlocker
Method: channelRead
Line: 76
Link: PacketBlocker.java#L76

java.lang.RuntimeException: Failed to read response

Unknown fix!
Class: HttpClient
Method: readDefaultResponse
Line: 143
Link: HttpClient.java#L143

java.lang.NullPointerException: Cannot invoke "org.geysermc.geyser.skin.FloodgateSkinUploader.getId()" because "skinUploader" is null

Unknown fix!
Class: GeyserSession$1
Method: packetSending
Line: 959
Link: GeyserSession.java#L959

lavish vapor
queen pawn
#

I entirely stopped all connected servers, deleted the Bungeecord Plugins folder contents entirely, re-downloaded the latest Geyser and Floodgate files for Bungeecord, installed them, and restarted the servers. I'm still getting the same error.

cold arrowBOT
# queen pawn I entirely stopped all connected servers, deleted the Bungeecord Plugins folder ...
Found errors in the log!

See below for details and possible fixes

Address already in use

This means something (likely another instance of Geyser) is running on the port you have specified in the config. Please make sure you close all applications running on this port. If you don't recall opening anything, usually restarting your computer fixes this.
If you are using a server hosting provider and get this error, you likely need to use a specific port allocated to you. See the setup guide for instructions on how to configure Geyser.

io.netty.handler.codec.DecoderException: java.lang.IndexOutOfBoundsException: index: 3, length: 47 (expected: range(0, 3))

Unknown fix!
Class: PacketBlocker
Method: channelRead
Line: 76
Link: PacketBlocker.java#L76

java.lang.NullPointerException: Cannot invoke "org.geysermc.geyser.skin.FloodgateSkinUploader.getId()" because "skinUploader" is null

Unknown fix!
Class: GeyserSession$1
Method: packetSending
Line: 959
Link: GeyserSession.java#L959

queen pawn
#

This server is running in containers via portainer, and I've not had this issue at all over the past 4 years of using this setup.

languid fox
#

!!dump

cold arrowBOT
# languid fox !!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.

grizzled zodiac
#

I am also having issues with this. Tried to get a geyser dump. but geysers not even loading so I can't even run geyser dump.

cold arrowBOT
# grizzled zodiac I am also having issues with this. Tried to get a geyser dump. but geysers not e...
Found errors in the log!

See below for details and possible fixes

Address already in use

This means something (likely another instance of Geyser) is running on the port you have specified in the config. Please make sure you close all applications running on this port. If you don't recall opening anything, usually restarting your computer fixes this.
If you are using a server hosting provider and get this error, you likely need to use a specific port allocated to you. See the setup guide for instructions on how to configure Geyser.

dapper basalt
#

@languid fox Shouldn't we concerned about Address already in use?

cold arrowBOT
# dapper basalt <@170429173003714560> Shouldn't we concerned about Address already in use?
Found errors in the log!

See below for details and possible fixes

Address already in use

This means something (likely another instance of Geyser) is running on the port you have specified in the config. Please make sure you close all applications running on this port. If you don't recall opening anything, usually restarting your computer fixes this.
If you are using a server hosting provider and get this error, you likely need to use a specific port allocated to you. See the setup guide for instructions on how to configure Geyser.

languid fox
grizzled zodiac
#

From looking at the OP, I think we're having the same issue. Please, if it's not, let me know, and I'll create another forum post.

dapper basalt
dapper basalt
queen pawn
#

I just applied the newest update, and I'm still having the same issues. 😦 Here's my newest log.

cold arrowBOT
cold arrowBOT
# queen pawn
Found errors in the log!

See below for details and possible fixes

Address already in use

This means something (likely another instance of Geyser) is running on the port you have specified in the config. Please make sure you close all applications running on this port. If you don't recall opening anything, usually restarting your computer fixes this.
If you are using a server hosting provider and get this error, you likely need to use a specific port allocated to you. See the setup guide for instructions on how to configure Geyser.

io.netty.handler.codec.DecoderException: java.lang.IndexOutOfBoundsException: index: 3, length: 47 (expected: range(0, 3))

Unknown fix!
Class: PacketBlocker
Method: channelRead
Line: 76
Link: PacketBlocker.java#L76

java.lang.NullPointerException: Cannot invoke "org.geysermc.geyser.skin.FloodgateSkinUploader.getId()" because "skinUploader" is null

Unknown fix!
Class: GeyserSession$1
Method: packetSending
Line: 959
Link: GeyserSession.java#L959

io.netty.handler.codec.DecoderException: java.lang.IndexOutOfBoundsException: index: 3, length: 3 (expected: range(0, 5))

Unknown fix!
Class: PacketBlocker
Method: channelRead
Line: 76
Link: PacketBlocker.java#L76

io.netty.handler.codec.DecoderException: java.lang.IndexOutOfBoundsException: index: 3, length: 44 (expected: range(0, 3))

Unknown fix!
Class: PacketBlocker
Method: channelRead
Line: 76
Link: PacketBlocker.java#L76

io.netty.handler.codec.DecoderException: java.lang.IndexOutOfBoundsException: index: 3, length: 11 (expected: range(0, 3))

Unknown fix!
Class: PacketBlocker
Method: channelRead
Line: 76
Link: PacketBlocker.java#L76

io.netty.handler.codec.DecoderException: java.lang.IndexOutOfBoundsException: index: 3, length: 51 (expected: range(0, 3))

Unknown fix!
Class: PacketBlocker
Method: channelRead
Line: 76
Link: PacketBlocker.java#L76

io.netty.handler.codec.DecoderException: java.lang.IndexOutOfBoundsException: index: 3, length: 19 (expected: range(0, 3))

Unknown fix!
Class: PacketBlocker
Method: channelRead
Line: 76
Link: PacketBlocker.java#L76

languid fox
#

Can you delete your log file and restart the server to generate a fresh one?

queen pawn
#

Okay, stopped the server, deleted the proxy.log files, and restarted. Then I tried to join with MC Windows and got the same "Failed to Encrypt" message. I was able to join with Java with no issues.

cold arrowBOT
cold arrowBOT
# queen pawn
Found errors in the log!

See below for details and possible fixes

Address already in use

This means something (likely another instance of Geyser) is running on the port you have specified in the config. Please make sure you close all applications running on this port. If you don't recall opening anything, usually restarting your computer fixes this.
If you are using a server hosting provider and get this error, you likely need to use a specific port allocated to you. See the setup guide for instructions on how to configure Geyser.

java.lang.NullPointerException: Cannot invoke "org.geysermc.geyser.skin.FloodgateSkinUploader.getId()" because "skinUploader" is null

Unknown fix!
Class: GeyserSession$1
Method: packetSending
Line: 959
Link: GeyserSession.java#L959

languid fox
#

So Geyser isnt starting properly so its causing issues

#

Do you have access to use port 19132 on your server as it looks like you dont

queen pawn
#

No, I don't. I use Containers and run 5 different Bungeecord setups for our school. I've been doing this for 4 years and the update last week is the very first time this has ever been an issue.

#

I use port forwarding that has never been an issue in the past.

#

I should probably clarify; I use Docker Portainer and Containers to manage everything. I'm not a programmer in the least, just a school teacher who has been providing Minecraft groups for our students since the pandemic.

languid fox
queen pawn
#

I'm 95% positive that we're using bridge networking, but my IT person is on vacation in Germany for 2 weeks right now. :/

dawn heart
#

So what point are you at right now when you join? Have you fixed geyser not binding or?

queen pawn
#

I don't know. The most recent report I uploaded is where I'm stuck. Nothing has changed in any of my programming except adding in the most recent update to Geyser and deleting the proxy files. This system has worked for me for years, and suddenly none of my Bedrock students can log in, all getting the "failed to Encrypt Message" error when they attempt to log in. When I look through the logs, it appears to be the "org.geysermc.geyser.skin.FloodgateSkinUploader.getId()" issue, but I'm not sure.

#

Like I said, I'm no programmer; I'm a 7th grade math teacher.

dawn heart
#

Well if you have failed to bind in the log there wouldn't be anything for bedrock players to connect to.

queen pawn
#

When I log in using Windows MC, I get the following messages, in this order:
Connecting to external server
Generating world (Locating server)

cold arrowBOT
queen pawn
#

and then "Failed to encrypt message"

#

In the Bungeecord server log, it gives my ip, says "player connected with username... , "username" (logged in as : "username") has connected to remote java server on address, then "Warning Geyser-BungeeCord Failed to encrypt message with the floodgate skin uploader issue.

#

after the "failed to encrypt message error log, it says "username" has disconnected from remote Java server because of Failed to encrypt message

#

From that, it appears that Bedrock is connecting, but whatever the Floodgate skin uploader is is "broken" and won't let us get any further.

lavish vapor
#

Just curious, but could you try adding -DGeyser.ListenCount=1 to your startup script and send a new log after that happened?

Judging by the warnings you're getting, it looks like we're trying to set the reuse port option (as the kernel version you're on should support it), but that fails. I wonder if only the second bind fails due to that which then causes Geyser to not start fully..

queen pawn
#

To be honest, I have NO idea how to do that. I run Docker containers in Portainer and use the portainer to stop and start the servers.

lavish vapor
#

since usually, if Geyser actually fails to bind, you wouldn't be seeing any errors/connection attempts

lavish vapor
queen pawn
#

I'm using docker images to do this. So (from what has been explained to me) docker just downloads the image to run. I'm using the image itzg/bungeecord:latest

#

With it running via the images, I don't see anywhere in my files where I actually have the -jar server.jar programming in my setup

#

the other image that's being used (on the world servers bungeecord connects to) is itzg/minecraft-server. The logs for the world servers never acknowledges the attempt to connect; it's only seen on the Bungeecord server.

dawn heart
#

Does portainer have a place for you to edit environment variables?

queen pawn
#

Yes, I do have that.

#

Would I want to add to the environment for the Bungeecord server only, or all connected servers?

dawn heart
#

Do you already have a value for JVM_OPTS?

queen pawn
#

No, that line isn't in my environment at all.

dawn heart
#

Ok, so you can add that and set it equal to what Chris said earlier: -DGeyser.ListenCount=1

queen pawn
cold arrowBOT
cold arrowBOT
# queen pawn
Found errors in the log!

See below for details and possible fixes

Address already in use

This means something (likely another instance of Geyser) is running on the port you have specified in the config. Please make sure you close all applications running on this port. If you don't recall opening anything, usually restarting your computer fixes this.
If you are using a server hosting provider and get this error, you likely need to use a specific port allocated to you. See the setup guide for instructions on how to configure Geyser.

java.lang.NullPointerException: Cannot invoke "org.geysermc.geyser.skin.FloodgateSkinUploader.getId()" because "skinUploader" is null

Unknown fix!
Class: GeyserSession$1
Method: packetSending
Line: 959
Link: GeyserSession.java#L959

queen pawn
cold arrowBOT
queen pawn
cold arrowBOT
dawn heart
#

Did you restart docker compose after updating the file?

queen pawn
#

Yes. I restarted everything and tried to log in again, with the same issues..

lavish vapor
#

Could you enable geysers debug mode, restart, and send a new log?

queen pawn
#

The logs are from after the restart

#

I'm sorry to be so unknowing about what I'm doing. Can you help me know how to do that? I'm running a headless server on PuTTY.

lavish vapor
#

would it be easier for you if we send a test geyser jar to switch out? assuming you're able to switch them out

queen pawn
#

That would help a lot. Thank you for all your help!

lavish vapor
#

if you could try this jar & send the log you get with that, that'd be helpful

queen pawn
#

should I delete the old logs before restarting with the new jar file?

lavish vapor
#

sure, thatll keep em cleaner

queen pawn
#

Whatever changes you made to that jar fixed the issue. I was able to log in. I'll send over the log anyway. 🙂

lavish vapor
#

yeah that would definitely help

queen pawn
cold arrowBOT
lavish vapor
#

!!dump could you also send a Geyser dump?

cold arrowBOT
# lavish vapor !!dump could you also send 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.

queen pawn
#

I don't know what I'm doing wrong, but even after I've made sure to allow permissions for all the geyser commands and permissions (from the wiki) I'm getting this error: geyser.bootstrap.command.permission_fail

cold arrowBOT
lavish vapor
#

oh yeah, the language strings will be bungled up with this test build
as for permissions, you would have to install luckperms on the proxy and give the permissions there.
For example, for luckperms on bungee, you could access the editor by running /lpb editor in the bungee server console

#

however, geyser dump should always be possible to run from the server console

queen pawn
#

I have luckperms installed and did add the permissions there

#

Unfortunately, I've never run with a server console. 😦 It's a headless server run through putty without a "live console". It's what the IT guy set up, and I've only ever done these things through in-game commands. 😦

lavish vapor
#

oof
well, make sure to give yourself the permissions on the correct luckperms instance - you need to access the luckperms instance on the proxy, not the backend server

queen pawn
#

I think the biggest issue is that I don't have a console for the bungeecord server anywhere. The bungeecord automatically redirects to a "world" server.

languid fox
#

If it's docker you should be able to attach to the running container although I'm on mobile so can't put that command together

queen pawn
#

The command permissions were given on the proxy server, and it still kicks back that command. I'm full OP there as well.

#

I'll see if I can google for how to connect to the container console as well.

languid fox
#

Docker attach
That's what you want to look at

lavish vapor
#

Thanks btw for testing that jar - i now know enough to hopefully be able to PR a proper fix tomorrow :)
would still be interesting to see what kind of a system you're running that doesn't support the so_reuseport channel option.. i thought that most linux based systems did? :p

queen pawn
#

Thanks so much. I'm still trying to get the geyser dump to work, but with it being later in the day here (Mountain Time) my own kids are being more demanding. I'll get it as soon as I can!

queen pawn
#

I finally got the backend console to work, but I'm getting the error "geyser: not found" in my command line access. This morning I saw the new update, so I installed it on a test server I run constantly, and I get the same error I got before your individualized update.

lavish vapor
#

we have not yet patched this in geyser

#

I'm currently working on that, but netty really isn't my specialty :p

queen pawn
#

it's all good. When my tech guy gets back I'll be able to provide more information to you hopefully. In the meantime, unless there are essential updates, I'll stick with the version you sent me yesterday.

dawn heart
#

To clarify, it's not as simple as disabling this option as for performance reasons we want it enabled if the system supports it. But for whatever reason on your particular setup the code we use to detect if the option is supported does not work correctly.

queen pawn
#

I totally get it! I'm grateful for your help in getting a version that works for me for now, while I work to get the information you need to understand what's going on. Thanks for all your help!!!

lavish vapor
dawn heart
#

(You'll need to be signed into GitHub to see the option to download it)