Inventory-Free

Inventory-Free

458k Downloads

used good ol chat gpt to describe what some errors mean

derplordofdeath opened this issue ยท 0 comments

commented

To Reproduce
Steps to reproduce the behavior:

  1. Use 'mod and... uh?'
  2. Click on 'main menu button/ type stop in dedicated server'
  3. See error (in logs)

Expected behavior
the mod to not throw errors when leaving to main menu

Versions (please complete the following information):

  • Minecraft version: [1.21.1]
  • NeoForge version: [21.1.192]
  • Mod Version [InventoryFree-1.21.0-3.3.1]

Additional context
it doesnt do anything particularly bad well i mean your not gonna leave your game and then you pc is gonna just fucking be bricked its more like if your using the mod and then your also making a mod pack after about 50+ restarts the game becomes unplayable due to corruption now that might be because other mods are helping this one speed it up but i do know when i removed this mod and continued my modding adventures i never got a corrupted neoforge jar and i was still able to launch the game btw the fix to that was to remove all my mods and configs make a new neoforge jar and then put everything right back where it was so it was a perfect copy EXCEPT the neoforge jar aka it got corrupted also this is what chat gpt had to say

TL;DR: The problem is with the Inventory Free mod during server shutdown, where it's trying to read a config value after the config has already been unloaded, which is not allowed.

Key Error:

Cannot get config value before config is loaded.

The mod is calling .get() on a ModConfigSpec.ConfigValue during the ModConfigEvent.Unloading phase, which it shouldn't do because the config is already being unloaded at that point.

The error is uncaught during shutdown, leading to:

net.neoforged.fml.ModLoadingException: Loading errors encountered:
Inventory-Free (inventory_free) encountered an error while dispatching the ModConfigEvent$Unloading

This is not a crash during gameplay but a crash during mod unloading, likely causing issues on world save or clean shutdown (e.g., stuck threads or potential data corruption).

Inventory-Free is violating NeoForge lifecycle rules. It's reading from its config in an @SubscribeEvent handler for config unloading, which is too late in the lifecycle. Config values become invalid during that phase.

Repeated stuck threads (AWT-EventQueue, pool-13-thread-1, AWT-Shutdown) are likely from a GUI-based tool or logger (maybe AllTheLeaks, InventoryFree, or a config GUI like Cloth Config/ForgeConfigGUI) not shutting down cleanly.

here are the logs in the server BTW this is in the SERVER not the INTERNAL server

logs c|:)-/<
/

[15:32:33] [Server thread/ERROR] [ne.ne.fm.ja.FMLModContainer/]: Exception caught during firing event: Cannot get config value before config is loaded.
Index: 0
Listeners:
0: kirderf1.inventoryfree.InventoryFree$$Lambda/0x000001ac3a63c5d0@574fab55
java.lang.IllegalStateException: Cannot get config value before config is loaded.
at MC-BOOTSTRAP/[email protected]/com.google.common.base.Preconditions.checkState(Preconditions.java:512)
at TRANSFORMER/[email protected]/net.neoforged.neoforge.common.ModConfigSpec$ConfigValue.getRaw(ModConfigSpec.java:1235)
at TRANSFORMER/[email protected]/net.neoforged.neoforge.common.ModConfigSpec$ConfigValue.get(ModConfigSpec.java:1222)
at TRANSFORMER/[email protected]/kirderf1.inventoryfree.SlotUnlocker.verifyUnlockItem(SlotUnlocker.java:135)
at MC-BOOTSTRAP/net.neoforged.bus/net.neoforged.bus.ConsumerEventHandler.invoke(ConsumerEventHandler.java:27)
at MC-BOOTSTRAP/net.neoforged.bus/net.neoforged.bus.EventBus.post(EventBus.java:360)
at MC-BOOTSTRAP/net.neoforged.bus/net.neoforged.bus.EventBus.post(EventBus.java:328)
at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.ModContainer.acceptEvent(ModContainer.java:158)
at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.config.ModConfig.setConfig(ModConfig.java:79)
at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.config.ConfigTracker.closeConfig(ConfigTracker.java:233)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at java.base/java.util.Collections$SynchronizedCollection.forEach(Collections.java:2352)
at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.config.ConfigTracker.unloadConfigs(ConfigTracker.java:129)
at TRANSFORMER/[email protected]/net.neoforged.neoforge.server.ServerLifecycleHooks.handleServerStopped(ServerLifecycleHooks.java:134)
at TRANSFORMER/[email protected]/net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:750)
at TRANSFORMER/[email protected]/net.minecraft.server.MinecraftServer.lambda$spin$2(MinecraftServer.java:267)
at java.base/java.lang.Thread.run(Thread.java:1447)

[15:32:33] [Server thread/ERROR] [ne.ne.fm.ModContainer/LOADING]: Caught exception during event net.neoforged.fml.event.config.ModConfigEvent$Unloading@7db305d8 dispatch for modid inventory_free
java.lang.IllegalStateException: Cannot get config value before config is loaded.
at MC-BOOTSTRAP/[email protected]/com.google.common.base.Preconditions.checkState(Preconditions.java:512) ~[guava-32.1.2-jre.jar%2387!/:?] {re:mixin}
at TRANSFORMER/[email protected]/net.neoforged.neoforge.common.ModConfigSpec$ConfigValue.getRaw(ModConfigSpec.java:1235) ~[neoforge-21.1.186-universal.jar%23514!/:?] {re:mixin,re:classloading}
at TRANSFORMER/[email protected]/net.neoforged.neoforge.common.ModConfigSpec$ConfigValue.get(ModConfigSpec.java:1222) ~[neoforge-21.1.186-universal.jar%23514!/:?] {re:mixin,re:classloading}
at TRANSFORMER/[email protected]/kirderf1.inventoryfree.SlotUnlocker.verifyUnlockItem(SlotUnlocker.java:135) ~[InventoryFree-1.21.0-3.3.1.jar%23710!/:?] {re:classloading}
at MC-BOOTSTRAP/net.neoforged.bus/net.neoforged.bus.ConsumerEventHandler.invoke(ConsumerEventHandler.java:27) ~[bus-8.0.5.jar%2362!/:?] {}
at MC-BOOTSTRAP/net.neoforged.bus/net.neoforged.bus.EventBus.post(EventBus.java:360) ~[bus-8.0.5.jar%2362!/:?] {}
at MC-BOOTSTRAP/net.neoforged.bus/net.neoforged.bus.EventBus.post(EventBus.java:328) ~[bus-8.0.5.jar%2362!/:?] {}
at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.ModContainer.acceptEvent(ModContainer.java:158) [loader-4.0.41.jar%2359!/:4.0] {re:mixin}
at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.config.ModConfig.setConfig(ModConfig.java:79) [loader-4.0.41.jar%2359!/:4.0] {}
at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.config.ConfigTracker.closeConfig(ConfigTracker.java:233) [loader-4.0.41.jar%2359!/:4.0] {}
at java.base/java.lang.Iterable.forEach(Iterable.java:75) [?:?] {re:mixin}
at java.base/java.util.Collections$SynchronizedCollection.forEach(Collections.java:2352) [?:?] {}
at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.config.ConfigTracker.unloadConfigs(ConfigTracker.java:129) [loader-4.0.41.jar%2359!/:4.0] {}
at TRANSFORMER/[email protected]/net.neoforged.neoforge.server.ServerLifecycleHooks.handleServerStopped(ServerLifecycleHooks.java:134) [neoforge-21.1.186-universal.jar%23514!/:?] {re:mixin,re:classloading}
at TRANSFORMER/[email protected]/net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:750) [server-1.21.1-20240808.144430-srg.jar%23513!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:modernfix-common.mixins.json:perf.fix_loop_spin_waiting.MinecraftServerMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:core.MinecraftServerMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:perf.dedicated_reload_executor.MinecraftServerMixin from mod modernfix,pl:mixin:APP:modernfix-neoforge.mixins.json:core.MinecraftServerMixin from mod modernfix,pl:mixin:APP:crafttweaker.mixins.json:common.access.server.AccessMinecraftServer from mod crafttweaker,pl:mixin:APP:axesareweapons.common.mixins.json:MinecraftServerMixin from mod axesareweapons,pl:mixin:APP:fabric-message-api-v1.mixins.json:MinecraftServerMixin from mod fabric_message_api_v1,pl:mixin:APP:structureessentials.mixins.json:LevelCreatedCallback from mod structureessentials,pl:mixin:APP:fabric-resource-loader-v0.mixins.json:MinecraftServerMixin from mod fabric_resource_loader_v0,pl:mixin:APP:ichunutil.mixins.json:MinecraftServerAccessorMixin from mod ichunutil,pl:mixin:APP:balm.neoforge.mixins.json:MinecraftServerMixin from mod balm,pl:mixin:APP:unionlib.mixins.json:MinecraftServerMixin from mod unionlib,pl:mixin:APP:neoforge-infinity.mixins.json:core.MinecraftServerMixin from mod infinity,pl:mixin:APP:fabric-lifecycle-events-v1.mixins.json:MinecraftServerMixin from mod fabric_lifecycle_events_v1,pl:mixin:APP:kubejs.mixins.json:MinecraftServerMixin from mod kubejs,pl:mixin:APP:alternate-current.mixins.json:MinecraftServerMixin from mod alternate_current,pl:mixin:APP:blueprint.mixins.json:MinecraftServerMixin from mod blueprint,pl:mixin:A}
at TRANSFORMER/[email protected]/net.minecraft.server.MinecraftServer.lambda$spin$2(MinecraftServer.java:267) [server-1.21.1-20240808.144430-srg.jar%23513!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:modernfix-common.mixins.json:perf.fix_loop_spin_waiting.MinecraftServerMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:core.MinecraftServerMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:perf.dedicated_reload_executor.MinecraftServerMixin from mod modernfix,pl:mixin:APP:modernfix-neoforge.mixins.json:core.MinecraftServerMixin from mod modernfix,pl:mixin:APP:crafttweaker.mixins.json:common.access.server.AccessMinecraftServer from mod crafttweaker,pl:mixin:APP:axesareweapons.common.mixins.json:MinecraftServerMixin from mod axesareweapons,pl:mixin:APP:fabric-message-api-v1.mixins.json:MinecraftServerMixin from mod fabric_message_api_v1,pl:mixin:APP:structureessentials.mixins.json:LevelCreatedCallback from mod structureessentials,pl:mixin:APP:fabric-resource-loader-v0.mixins.json:MinecraftServerMixin from mod fabric_resource_loader_v0,pl:mixin:APP:ichunutil.mixins.json:MinecraftServerAccessorMixin from mod ichunutil,pl:mixin:APP:balm.neoforge.mixins.json:MinecraftServerMixin from mod balm,pl:mixin:APP:unionlib.mixins.json:MinecraftServerMixin from mod unionlib,pl:mixin:APP:neoforge-infinity.mixins.json:core.MinecraftServerMixin from mod infinity,pl:mixin:APP:fabric-lifecycle-events-v1.mixins.json:MinecraftServerMixin from mod fabric_lifecycle_events_v1,pl:mixin:APP:kubejs.mixins.json:MinecraftServerMixin from mod kubejs,pl:mixin:APP:alternate-current.mixins.json:MinecraftServerMixin from mod alternate_current,pl:mixin:APP:blueprint.mixins.json:MinecraftServerMixin from mod blueprint,pl:mixin:A}
at java.base/java.lang.Thread.run(Thread.java:1447) [?:?] {re:mixin}
[15:32:33] [Server thread/ERROR] [minecraft/MinecraftServer]: Uncaught exception in server thread
net.neoforged.fml.ModLoadingException: Loading errors encountered:
- Inventory-Free (inventory_free) encountered an error while dispatching the net.neoforged.fml.event.config.ModConfigEvent$Unloading event
java.lang.IllegalStateException: Cannot get config value before config is loaded.

    at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.ModContainer.acceptEvent(ModContainer.java:162) ~[loader-4.0.41.jar%2359!/:4.0] {re:mixin}
    at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.config.ModConfig.setConfig(ModConfig.java:79) ~[loader-4.0.41.jar%2359!/:4.0] {}
    at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.config.ConfigTracker.closeConfig(ConfigTracker.java:233) ~[loader-4.0.41.jar%2359!/:4.0] {}
    at java.base/java.lang.Iterable.forEach(Iterable.java:75) ~[?:?] {re:mixin}
    at java.base/java.util.Collections$SynchronizedCollection.forEach(Collections.java:2352) ~[?:?] {}
    at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.config.ConfigTracker.unloadConfigs(ConfigTracker.java:129) ~[loader-4.0.41.jar%2359!/:4.0] {}
    at TRANSFORMER/[email protected]/net.neoforged.neoforge.server.ServerLifecycleHooks.handleServerStopped(ServerLifecycleHooks.java:134) ~[neoforge-21.1.186-universal.jar%23514!/:?] {re:mixin,re:classloading}
    at TRANSFORMER/[email protected]/net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:750) ~[server-1.21.1-20240808.144430-srg.jar%23513!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:modernfix-common.mixins.json:perf.fix_loop_spin_waiting.MinecraftServerMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:core.MinecraftServerMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:perf.dedicated_reload_executor.MinecraftServerMixin from mod modernfix,pl:mixin:APP:modernfix-neoforge.mixins.json:core.MinecraftServerMixin from mod modernfix,pl:mixin:APP:crafttweaker.mixins.json:common.access.server.AccessMinecraftServer from mod crafttweaker,pl:mixin:APP:axesareweapons.common.mixins.json:MinecraftServerMixin from mod axesareweapons,pl:mixin:APP:fabric-message-api-v1.mixins.json:MinecraftServerMixin from mod fabric_message_api_v1,pl:mixin:APP:structureessentials.mixins.json:LevelCreatedCallback from mod structureessentials,pl:mixin:APP:fabric-resource-loader-v0.mixins.json:MinecraftServerMixin from mod fabric_resource_loader_v0,pl:mixin:APP:ichunutil.mixins.json:MinecraftServerAccessorMixin from mod ichunutil,pl:mixin:APP:balm.neoforge.mixins.json:MinecraftServerMixin from mod balm,pl:mixin:APP:unionlib.mixins.json:MinecraftServerMixin from mod unionlib,pl:mixin:APP:neoforge-infinity.mixins.json:core.MinecraftServerMixin from mod infinity,pl:mixin:APP:fabric-lifecycle-events-v1.mixins.json:MinecraftServerMixin from mod fabric_lifecycle_events_v1,pl:mixin:APP:kubejs.mixins.json:MinecraftServerMixin from mod kubejs,pl:mixin:APP:alternate-current.mixins.json:MinecraftServerMixin from mod alternate_current,pl:mixin:APP:blueprint.mixins.json:MinecraftServerMixin from mod blueprint,pl:mixin:A}
    at TRANSFORMER/[email protected]/net.minecraft.server.MinecraftServer.lambda$spin$2(MinecraftServer.java:267) [server-1.21.1-20240808.144430-srg.jar%23513!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:modernfix-common.mixins.json:perf.fix_loop_spin_waiting.MinecraftServerMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:core.MinecraftServerMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:perf.dedicated_reload_executor.MinecraftServerMixin from mod modernfix,pl:mixin:APP:modernfix-neoforge.mixins.json:core.MinecraftServerMixin from mod modernfix,pl:mixin:APP:crafttweaker.mixins.json:common.access.server.AccessMinecraftServer from mod crafttweaker,pl:mixin:APP:axesareweapons.common.mixins.json:MinecraftServerMixin from mod axesareweapons,pl:mixin:APP:fabric-message-api-v1.mixins.json:MinecraftServerMixin from mod fabric_message_api_v1,pl:mixin:APP:structureessentials.mixins.json:LevelCreatedCallback from mod structureessentials,pl:mixin:APP:fabric-resource-loader-v0.mixins.json:MinecraftServerMixin from mod fabric_resource_loader_v0,pl:mixin:APP:ichunutil.mixins.json:MinecraftServerAccessorMixin from mod ichunutil,pl:mixin:APP:balm.neoforge.mixins.json:MinecraftServerMixin from mod balm,pl:mixin:APP:unionlib.mixins.json:MinecraftServerMixin from mod unionlib,pl:mixin:APP:neoforge-infinity.mixins.json:core.MinecraftServerMixin from mod infinity,pl:mixin:APP:fabric-lifecycle-events-v1.mixins.json:MinecraftServerMixin from mod fabric_lifecycle_events_v1,pl:mixin:APP:kubejs.mixins.json:MinecraftServerMixin from mod kubejs,pl:mixin:APP:alternate-current.mixins.json:MinecraftServerMixin from mod alternate_current,pl:mixin:APP:blueprint.mixins.json:MinecraftServerMixin from mod blueprint,pl:mixin:A}
    at java.base/java.lang.Thread.run(Thread.java:1447) [?:?] {re:mixin}

AllTheLeaks: Listing stuck threads...
Stuck thread: AWT-EventQueue-0
Stuck thread: pool-13-thread-1
Stuck thread: AWT-Shutdown