
[Mod Compat] EMI throwing an error when used with Sodium
nonsensicalTrickster opened this issue ยท 2 comments
When attempting to use EMI with Sodium, I got the following error:
A mod crashed on startup!
net.fabricmc.loader.impl.FormattedException: java.lang.RuntimeException: Could not execute entrypoint stage 'preLaunch' due to errors, provided by 'sodium' at 'net.caffeinemc.mods.sodium.fabric.SodiumPreLaunch'!
at net.fabricmc.loader.impl.FormattedException.ofLocalized(FormattedException.java:63)
at net.fabricmc.loader.impl.launch.knot.Knot.init(Knot.java:162)
at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:68)
at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)
at org.prismlauncher.launcher.impl.StandardLauncher.launch(StandardLauncher.java:105)
at org.prismlauncher.EntryPoint.listen(EntryPoint.java:129)
at org.prismlauncher.EntryPoint.main(EntryPoint.java:70)
Caused by: java.lang.RuntimeException: Could not execute entrypoint stage 'preLaunch' due to errors, provided by 'sodium' at 'net.caffeinemc.mods.sodium.fabric.SodiumPreLaunch'!
at net.fabricmc.loader.impl.FabricLoaderImpl.lambda$invokeEntrypoints$2(FabricLoaderImpl.java:403)
at net.fabricmc.loader.impl.util.ExceptionUtil.gatherExceptions(ExceptionUtil.java:33)
at net.fabricmc.loader.impl.FabricLoaderImpl.invokeEntrypoints(FabricLoaderImpl.java:401)
at net.fabricmc.loader.impl.launch.knot.Knot.init(Knot.java:160)
... 5 more
Caused by: net.fabricmc.loader.api.EntrypointException: Exception while loading entries for entrypoint 'preLaunch' provided by 'sodium'
at net.fabricmc.loader.impl.entrypoint.EntrypointContainerImpl.getEntrypoint(EntrypointContainerImpl.java:56)
at net.fabricmc.loader.impl.FabricLoaderImpl.invokeEntrypoints(FabricLoaderImpl.java:399)
... 6 more
Caused by: java.lang.RuntimeException: Mixin transformation of net.caffeinemc.mods.sodium.fabric.SodiumPreLaunch failed
at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:427)
at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.tryLoadClass(KnotClassDelegate.java:323)
at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.loadClass(KnotClassDelegate.java:218)
at net.fabricmc.loader.impl.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:119)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:534)
at java.base/java.lang.Class.forName(Class.java:513)
at net.fabricmc.loader.impl.util.DefaultLanguageAdapter.create(DefaultLanguageAdapter.java:50)
at net.fabricmc.loader.impl.entrypoint.EntrypointStorage$NewEntry.getOrCreate(EntrypointStorage.java:124)
at net.fabricmc.loader.impl.entrypoint.EntrypointContainerImpl.getEntrypoint(EntrypointContainerImpl.java:53)
... 7 more
Caused by: org.spongepowered.asm.mixin.throwables.MixinApplyError: Mixin [emi-fabric.mixins.json:conversion.ItemConvertibleMixin from mod emi] from phase [DEFAULT] in config [emi-fabric.mixins.json] FAILED during PREPARE
at org.spongepowered.asm.mixin.transformer.MixinProcessor.handleMixinError(MixinProcessor.java:638)
at org.spongepowered.asm.mixin.transformer.MixinProcessor.handleMixinPrepareError(MixinProcessor.java:585)
at org.spongepowered.asm.mixin.transformer.MixinProcessor.prepareConfigs(MixinProcessor.java:543)
at org.spongepowered.asm.mixin.transformer.MixinProcessor.select(MixinProcessor.java:462)
at org.spongepowered.asm.mixin.transformer.MixinProcessor.checkSelect(MixinProcessor.java:438)
at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:290)
at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:234)
at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:202)
at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:422)
... 17 more
Caused by: org.spongepowered.asm.mixin.transformer.throwables.MixinTargetAlreadyLoadedException: Critical problem: emi-fabric.mixins.json:conversion.ItemConvertibleMixin from mod emi target net.minecraft.class_1935 was loaded too early.
at org.spongepowered.asm.mixin.transformer.MixinInfo.readDeclaredTargets(MixinInfo.java:947)
at org.spongepowered.asm.mixin.transformer.MixinInfo.(MixinInfo.java:881)
at org.spongepowered.asm.mixin.transformer.MixinConfig.prepareMixins(MixinConfig.java:933)
at org.spongepowered.asm.mixin.transformer.MixinConfig.prepare(MixinConfig.java:862)
at org.spongepowered.asm.mixin.transformer.MixinProcessor.prepareConfigs(MixinProcessor.java:540)
... 23 more
Upon unloading EMI and the addons, my game booted normally. I've reported this to Sodium as well, and an individual on the discord recommended reporting here to. It seems like ItemConvertible is being loaded before mixins which is causing the issue.
Adding a comment because I am also in communications with the Sodium Github issue tracker people:
`I found it! It's an interaction between Sodium, EMI, and the More Variants Series! Given that removing EMI allows booting, there's something going on there.
Here's the modlist, it wasn't until I added the 'More x Variants' that it gave an error:
- Cloth Config v15
- EMI
- EMI Enchanting
- EMI Loot
- EMI Ores
- Fabric API
- Fabric Language Kotlin
- Fzzy Config
- Mod Menu
- More (Fishing) Rod Variants (MStV+)
- More (Item/Painting) Frame Variants (MStV+)
- More Armor Stand Variants (MStV+)
- More Barrel Variants
- More Bed Variants
- More Beehive Variants
- More Bookshelf Variants
- More Cartography Tables
- More Chest Variants
- More Chiseled Bookshelf Variants
- More Composter Variants
- More Crafter Variants
- More Crafting Tables
- More Fletching Tables
- More Furnace Variants
- More Grindstone Variants
- More Jukebox/Noteblock Variants
- More Lectern Variants
- More Loom Variants
- More Shield Variants
- More Slabs Stairs & Walls
- More Smithing Tables
- More Smoker Variants
- More Stick Variants (MStV)
- More Torch Variants (MStV+)
- More Weapon Variants (MStV+)
- Placeholder API
- Quad
- Sodium
- Sophisticated Backpacks
- Sophisticated Core
- Sophisticated Storage
- Stfu
- YetAnotherConfigLib
The same issue was reported on Sodium and closed, it is not the fault of Sodium or EMI CaffeineMC/sodium#3060 (comment)