I've noticed a bug every so often I try to create a new world or enter a world. The game would finish creating it, but then when it gets to sending me to the world, it spits out this long error and it displays '0%' on the screen. I'm using Forge聽14.21.1.2413 with several mods that I'm using to create a modpack. Here's my FML Log
I'm also sometimes getting this crash, but I got it in dev environment: https://pastebin.com/raw/ufWMNRZJ
It had only the mod I as working on, and nothing else, I don't have fml log.
@Barteks2x The oddest thing is.. it doesn't even appear that a mod had to do with it.. It doesn't say anything about any of the mods in the logs
This bug was introduced in commit https://github.com/MinecraftForge/MinecraftForge/commit/3fee319bc0513bd06ce956019a15308fb829ce65. NetworkDispatcher::insertIntoChannel now calls setAutoRead(true), which causes the channel to immediately process incoming messages. But insertIntoChannel is (via some bouncer methods) called from NetHandlerLoginClient::handleLoginSuccess before that methods sets the net handler to NetHandlerPlayClient. This will work, only if the client has not received messages here yet, so that setAutoRead has nothing to process. Otherwise FML will try to process it's handshake using the login net handler. The fix should be to first set the net handler in handleLoginSuccess and then call fmlClientHandshake. PR incoming.
Most helpful comment
This bug was introduced in commit https://github.com/MinecraftForge/MinecraftForge/commit/3fee319bc0513bd06ce956019a15308fb829ce65. NetworkDispatcher::insertIntoChannel now calls
setAutoRead(true), which causes the channel to immediately process incoming messages. ButinsertIntoChannelis (via some bouncer methods) called fromNetHandlerLoginClient::handleLoginSuccessbefore that methods sets the net handler toNetHandlerPlayClient. This will work, only if the client has not received messages here yet, so thatsetAutoReadhas nothing to process. Otherwise FML will try to process it's handshake using the login net handler. The fix should be to first set the net handler inhandleLoginSuccessand then callfmlClientHandshake. PR incoming.