
minecolonies-1.1.947-1.21.1-snapshot crash when opening 'Building options'.
Closed this issue · 4 comments
Is there an existing issue for this?
- I have searched the existing issues.
Are you using the latest Structurize Version?
- I am running the latest beta/release version of Structurize for my Minecraft version.
I am also running the latest versions of other mods that are part of my problem.
Did you check on the Wiki? or ask on Discord?
Minecraft Version
1.21
Structurize Version
minecolonies-1.1.947-1.21.1-snapshot.jar
MineColonies Version (if related bug)
structurize-1.0.771-1.21.1-snapshot.jar
Related Mods and their Versions
NeoForge 1.21.1-164
minecolonies-1.1.947-1.21.1-snapshot.jar
structurize-1.0.771-1.21.1-snapshot.jar
Current Behavior
Open 'Building Options', crash the game. Got quite a few mods involved.
Crash reports:
crash-2025-04-29_18.59.29-client.txt
crash-2025-04-29_19.00.17-client.txt
crash-2025-04-29_19.00.21-client.txt
crash-2025-04-29_18.49.02-client.txt
crash-2025-04-29_18.49.17-client.txt
crash-2025-04-29_18.59.25-client.txt
Crash report analysis by o4-mini-high:
- StackOverflowError in the component-map mixins
java.lang.StackOverflowError: Unexpected error
at ReferencePipeline.toArray(ReferencePipeline.java:622)
…
at PatchedDataComponentMap.handler$…restorePatch(PatchedDataComponentMap.java:609)
at DerivedComponentMap.derive(DerivedComponentMap.java:33)
at ItemStack.(ItemStack.java:265)
…
This infinite recursion between PatchedDataComponentMap.restorePatch(...) (from the Accessories and Lithium mixins) and DerivedComponentMap.derive(...) (from OWO) during ItemStack initialization is overflowing the stack. A nearly identical trace shows up again at 19:00:17
- StackOverflowError in Structurize’s BlockUtils
java.lang.StackOverflowError: Unexpected error
at BlockUtils.getItemFromBlock(BlockUtils.java:313)
at BlockUtils.getItem(BlockUtils.java:306)
at BlockUtils.getItemStackFromBlockState(BlockUtils.java:450)
…
Here, getItemFromBlock(...) and getItem(...) call each other without termination, causing an endless loop in Structurize’s placement handler.
- NullPointerException in Structurize’s Blueprint code
java.lang.NullPointerException: Cannot invoke "Level.registryAccess()" because "level" is null
at Blueprint.setRotationMirrorRelative(Blueprint.java:653)
at Blueprint.setRotationMirror(Blueprint.java:640)
at WindowBuildBuilding.lambda$updateResources$6(WindowBuildBuilding.java:315)
…
Whenever MineColonies’ build-window UI tries to rotate or mirror a blueprint before it’s been bound to a world level, level is null and causes an NPE. This repeats at 18:49:17, 18:59:29, and 19:00:21.
Root causes
Mixin conflict between Accessories, Lithium, and OWO on Minecraft’s DataComponentMap → infinite patch/derive loop.
Recursive bug in Structurize’s BlockUtils.getItem… methods → unbounded mutual calls.
Missing null-check in Structurize’s Blueprint.setRotationMirrorRelative when used outside a loaded world.
Expected Behavior
No crash.
Reproduction Steps
Open 'Building Options', crash the game.
Logs
Anything else?
One log in the pastebin, the remainder attached in the 'Current Behavior' section.
Footer
Viewers
- Add a thumbs-up to the bug report if you are also affected. This helps the bug report become more visible to the team and doesn't clutter the comments.
- Add a comment if you have any insights or background information that isn't already part of the conversation.
Related owo-lib bug report: wisp-forest/owo-lib#380
Related accessories bug report: wisp-forest/accessories#276
Hello, commenting on all three issues:
- a 2. are same - this is caused by some block not being considered solid enough - @Raycoms we might want to add StackOverflow crashhandler to the placementHandlers that require solidness, so we now what block is causing this, or this whole tag logic was mby overengineered.. a little bit.. not sure i want to go down the rabbit hole again, but to me it looks like in certain tag scenario you can get this loop:
at TRANSFORMER/[email protected]/com.ldtteam.structurize.placement.handlers.placement.PlacementHandlers$FallingBlockPlacementHandler.getRequiredItems(PlacementHandlers.java:241)
at TRANSFORMER/[email protected]/com.ldtteam.structurize.placement.handlers.placement.PlacementHandlers.getRequiredItemsForState(PlacementHandlers.java:1073)
at TRANSFORMER/[email protected]/com.ldtteam.structurize.placement.handlers.placement.PlacementHandlers$FallingBlockPlacementHandler.getRequiredItems(PlacementHandlers.java:259)
at TRANSFORMER/[email protected]/com.ldtteam.structurize.placement.handlers.placement.PlacementHandlers.getRequiredItemsForState(PlacementHandlers.java:1073)
- this is minecolonies error, if not caused by mixins, itself unrecoverable from structurize pov