Immersive Engineering

Immersive Engineering

152M Downloads

Adding Immersive Engineering to modpack causes rare users to not be able to play on a server

Entoarox opened this issue ยท 9 comments

commented

Minecraft Version

1.21.1

Immersive Engineering Version

12.1.0-185

How did it happen?

Whenever anyone (myself included) affected by this attempts to join the server, the client reports a NullReferenceException on trying to sync the Registries (From what I can read in the stacktrace, something goes wrong trying to deserialize them client-side?)

Crash Log

https://gist.github.com/Entoarox/3f92cc7621a2fd0b76b36e743edd3a88

commented

That's not a crash log. I'm seeing nothing in there that points to IE causing any problems?

commented

The client does not crash, rather the connection with the server crashes.
As to what is going on, I honestly have no idea myself, I just know that adding IE prevents connecting to the server, with this being the error NeoForge spits out when I make the attempt to do so.

I wish I could provide more detail, but it frankly took a inordinate amount of time simply to track down why this was even happening to begin with due to the fact that this is literally all the information NeoForge provides when the Registry Sync fails.

commented

Yes but the log shows three failing recipes, none of which are from IE. There is zero indication here of it being our fault.

Can you get a snippet from the server side, as your client attempts to join? That might provide more insight.

commented

I'm afraid those logs are long gone, as the server auto-deletes logs after a couple days.
Not that I think it'd matter much, all the server log shows is a disconnect message with a massive (probably base64 encoded?) signature string and "Client Disconnected".

Hence why I had to literally go through and remove mods 1 by 1 to track down what was causing it, cause neither client nor server log contained any information as to why specifically some people just failed to join period.

I can see about recreating the situation, it should (unfortunately) not be hard, but may take a bit as I need to make sure nobody is playing on the server when this is going on.

commented

Okay, got a moment to do it, here are the debug.log files for both the client and server.
Sadly, just adding IE to the modpack was enough to immediately cause this issue to re-appear as I expected:
https://gist.github.com/Entoarox/3da588281351d1e1d8ef61b11be0f86e

commented

I literally can not do anything about this without logs =p

commented

The only things I can see regarding in terms of errors with IE are the compat recipes added by Farmer's Delight and Create Compressed. Both of these are using outdated formats for recipes, which causes them to not load properly.
That shouldn't be an issue here, but I guess you can try removing those and see if it works then.

Unfortunately the actual error of "Failed to handle registry sync from server" tells us absolutely nothing about what it failed on, so it's kinda impossible to say in how much it's IE's fault? ^^"

commented

While removing Create: Compressed is one thing, removing Farmer's delight is pretty much impossible, too many mods depend on it in the pack.

commented

I can hereby close this issue, after much aid from a NeoForge maintainer, the root source turns out to be a Race Condition in how the AnimalPens mod registers it's blocks which have a variant for the texture of any wood type, depending on if IE loads before or after the block logic in AnimalPens runs, a different result would occur, hence certain clients would reliably have IE load after AnimalPens, and thus not get all the blocks created that the server has, which created gaps in the Registry.

Thanks for trying to help me anyway Blu, turns out the culprit wasn't someone either of us considered!