-
Notifications
You must be signed in to change notification settings - Fork 196
Description
Hi.
I’m running a heavily modded Fabric 1.21.1 environment (server + client), and I’m repeatedly hitting hard client crashes caused by Lithium when a chunk contains invalid palette entries.
Crash message:
LithiumHashPalette.missingPaletteEntryCrash
Missing Palette entry for index X
This happens during rendering (usually water), often triggered when:
• dying (camera briefly moves through blocks)
• looking through walls for a split second
• Sodium attempts fluid rendering
• BetterEnd applies biome water color
Lithium immediately throws and kills the entire client.
Important detail:
The chunk is already corrupted (null palette slots).
Lithium is not the original cause, but it is the component that hard crashes instead of handling the situation gracefully.
In my case this is most likely introduced by C2ME (Concurrent Chunk Management Engine) running on the server, which can occasionally generate corrupted chunk palettes due to aggressive multithreading.
However, regardless of the origin, the current Lithium behavior turns a recoverable world corruption into an unavoidable client crash.
This leads to situations where:
• players randomly crash when dying
• looking at water instantly closes the game
• affected chunks become impossible to approach
• long term worlds become unplayable
What I’m asking:
Instead of throwing a fatal exception on missing palette entries, could Lithium:
• replace invalid entries with air
• skip the broken section
• log a warning and continue
• or provide a config option to disable hard crashes
Right now Lithium acts as a kill switch for any corrupted chunk, even though the client could technically continue running.
For long term survival servers, this behavior is extremely destructive.
Environment:
Minecraft 1.21.1
Fabric Loader 0.18.x
Sodium present
BetterEnd present
C2ME present on server (removed on client for testing)
Large modpack (200+ mods)
Long running survival world
Removing client side C2ME reduces crash frequency, but the underlying issue remains because Lithium always aborts on palette mismatch.
Please consider making this failure mode non fatal.
Thanks.