Halogen

Halogen

657k Downloads

"ArrayIndexOutOfBoundsException" error crashing after loading in a server

SeymourSchlong opened this issue ยท 3 comments

commented

Reproduction Steps

Joining a server while being at my base (with a lot of modded stuff lying around). I can't really give much more information since I don't really have a way to reproduce it.

Crash Report File

https://gist.githubusercontent.com/natanfudge/f0ae425e4774c41f5ff53982890049ad/raw/a4640052b5b07bea979796bb450a1b155129fe8b/crash.txt

Mods list

Included with the crash report.

Additional Information

There are a lot of Create, Refined Storage, Thermal, Mekanism, Powah, Storage Drawers, Ender Storage, (and possibly Botania) blocks in that area, if it helps narrow things down. There are also a few Mr Crayfish vehicles, as well as a waystone, and a block that used Chisels and Bits.

I can provide more information if anything specific is needed. Thanks in advance!

commented

I have a crash like that when I go near an area with only my Nether Portal and some boats a few hundred blocks from my base. It works fine in the base and in the end, but as soon as I come near the Nether Portal (like 1-3 chunks), the game crashes. Reloading the game with Sodium will crash again, without it the game runs fine.

Crash Report: https://paste.ee/p/Hu7DB

I used OptiFine when the Nether Portal was generated, if that matters (but not together with Sodium of course).

I only use Create and Botania from the mods SeymourSchlong listed.

Edit: I downgraded Create so it doesn't depend on Flywheel and tried again. In a new world in creative, Nether Portals work fine. In my old world, I can go close to nether portals but the game crashes if I enter a preexisting one or light one after breaking it.

commented

This is a compatibility issue with Inspirations from the log

commented

This is because Inspirations colors the nether portal by checking blocks underneath the portal. Since they traverse neighboring blocks, those block positions might be outside of Sodium's set World slice bounds for the current render task. I can change Sodium to check if we're outside the range and default to vanilla's getBlockState() or getTileEntity(), though I find this has pretty poor performance and will drop your FPS significantly (but still better than vanilla). Perhaps we can also cache the vanilla result, but will do that later