shedaniel / REIPluginCompatibilities-Issues

0 stars 0 forks source link

[Bug] Can't view Create assembly line recipes #54

Open vlad1m opened 11 months ago

vlad1m commented 11 months ago

What happened?

The mod is unable to load Create's assembly line recipes ; 1.19.2 forge

Relevant log output

[17:47:03] [ForkJoinPool.commonPool-worker-8/ERROR]: Could not find parent com/simibubi/create/compat/jei/category/sequencedAssembly/SequencedAssemblySubCategory for class com/simibubi/create/compat/jei/category/sequencedAssembly/SequencedAssemblySubCategory$AssemblyDeploying in classloader jdk.internal.loader.ClassLoaders$AppClassLoader@6442b0a6 on thread Thread[ForkJoinPool.commonPool-worker-8,1,main]
[17:47:03] [ForkJoinPool.commonPool-worker-13/ERROR]: Could not find parent com/simibubi/create/compat/jei/category/sequencedAssembly/SequencedAssemblySubCategory for class com/simibubi/create/compat/jei/category/sequencedAssembly/SequencedAssemblySubCategory$AssemblyCutting in classloader jdk.internal.loader.ClassLoaders$AppClassLoader@6442b0a6 on thread Thread[ForkJoinPool.commonPool-worker-13,1,main]
[17:47:03] [ForkJoinPool.commonPool-worker-8/ERROR]: An error occurred building event handler
java.lang.ClassNotFoundException: com.simibubi.create.compat.jei.category.sequencedAssembly.SequencedAssemblySubCategory
    at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[?:?]
    at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[?:?]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
    at net.minecraftforge.eventbus.EventSubclassTransformer.buildEvents(EventSubclassTransformer.java:92) ~[eventbus-6.0.3.jar:?]
    at net.minecraftforge.eventbus.EventSubclassTransformer.transform(EventSubclassTransformer.java:44) ~[eventbus-6.0.3.jar:?]
    at net.minecraftforge.eventbus.EventBusEngine.processClass(EventBusEngine.java:26) ~[eventbus-6.0.3.jar:?]
    at net.minecraftforge.eventbus.service.ModLauncherService.processClassWithFlags(ModLauncherService.java:32) ~[eventbus-6.0.3.jar:6.0.3+6.0.3+master.039e4ea9]
    at cpw.mods.modlauncher.LaunchPluginHandler.offerClassNodeToPlugins(LaunchPluginHandler.java:88) ~[modlauncher-10.0.8.jar:?]
    at cpw.mods.modlauncher.ClassTransformer.transform(ClassTransformer.java:120) ~[modlauncher-10.0.8.jar:?]
    at cpw.mods.modlauncher.TransformingClassLoader.maybeTransformClassBytes(TransformingClassLoader.java:50) ~[modlauncher-10.0.8.jar:?]
    at cpw.mods.cl.ModuleClassLoader.readerToClass(ModuleClassLoader.java:113) ~[securejarhandler-2.1.4.jar:?]
    at cpw.mods.cl.ModuleClassLoader.lambda$findClass$15(ModuleClassLoader.java:219) ~[securejarhandler-2.1.4.jar:?]
    at cpw.mods.cl.ModuleClassLoader.loadFromModule(ModuleClassLoader.java:229) ~[securejarhandler-2.1.4.jar:?]
    at cpw.mods.cl.ModuleClassLoader.findClass(ModuleClassLoader.java:219) ~[securejarhandler-2.1.4.jar:?]
    at cpw.mods.cl.ModuleClassLoader.loadClass(ModuleClassLoader.java:135) ~[securejarhandler-2.1.4.jar:?]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
    at com.simibubi.create.content.kinetics.deployer.DeployerApplicationRecipe.lambda$getJEISubCategory$0(DeployerApplicationRecipe.java:72) ~[?:?]
    at com.simibubi.create.compat.jei.category.SequencedAssemblyCategory.lambda$getSubCategory$1(SequencedAssemblyCategory.java:82) ~[?:?]
    at java.util.HashMap.computeIfAbsent(HashMap.java:1220) ~[?:?]
    at com.simibubi.create.compat.jei.category.SequencedAssemblyCategory.getSubCategory(SequencedAssemblyCategory.java:78) ~[?:?]
    at com.simibubi.create.compat.jei.category.SequencedAssemblyCategory.setRecipe(SequencedAssemblyCategory.java:66) ~[?:?]
    at com.simibubi.create.compat.jei.category.SequencedAssemblyCategory.setRecipe(SequencedAssemblyCategory.java:33) ~[?:?]
    at me.shedaniel.rei.jeicompat.wrap.JEIWrappedDisplay.cache(JEIWrappedDisplay.java:68) ~[?:?]
    at me.shedaniel.rei.jeicompat.wrap.JEIWrappedDisplay.<init>(JEIWrappedDisplay.java:62) ~[?:?]
    at me.shedaniel.rei.jeicompat.wrap.JEIRecipeRegistration.lambda$createDisplayFiller$1(JEIRecipeRegistration.java:134) ~[?:?]
    at me.shedaniel.rei.jeicompat.wrap.JEIRecipeRegistration.lambda$addRecipesOptimized$5(JEIRecipeRegistration.java:164) ~[?:?]
    at me.shedaniel.rei.api.common.util.CollectionUtils.map(CollectionUtils.java:128) ~[?:?]
    at me.shedaniel.rei.jeicompat.wrap.JEIRecipeRegistration.lambda$addRecipesOptimized$6(JEIRecipeRegistration.java:177) ~[?:?]
    at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) [?:?]
    at java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1760) [?:?]
    at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) [?:?]
    at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) [?:?]
    at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) [?:?]
    at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) [?:?]
    at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165) [?:?]
[17:47:03] [ForkJoinPool.commonPool-worker-13/ERROR]: An error occurred building event handler
java.lang.ClassNotFoundException: com.simibubi.create.compat.jei.category.sequencedAssembly.SequencedAssemblySubCategory
    at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[?:?]
    at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[?:?]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
    at net.minecraftforge.eventbus.EventSubclassTransformer.buildEvents(EventSubclassTransformer.java:92) ~[eventbus-6.0.3.jar:?]
    at net.minecraftforge.eventbus.EventSubclassTransformer.transform(EventSubclassTransformer.java:44) ~[eventbus-6.0.3.jar:?]
    at net.minecraftforge.eventbus.EventBusEngine.processClass(EventBusEngine.java:26) ~[eventbus-6.0.3.jar:?]
    at net.minecraftforge.eventbus.service.ModLauncherService.processClassWithFlags(ModLauncherService.java:32) ~[eventbus-6.0.3.jar:6.0.3+6.0.3+master.039e4ea9]
    at cpw.mods.modlauncher.LaunchPluginHandler.offerClassNodeToPlugins(LaunchPluginHandler.java:88) ~[modlauncher-10.0.8.jar:?]
    at cpw.mods.modlauncher.ClassTransformer.transform(ClassTransformer.java:120) ~[modlauncher-10.0.8.jar:?]
    at cpw.mods.modlauncher.TransformingClassLoader.maybeTransformClassBytes(TransformingClassLoader.java:50) ~[modlauncher-10.0.8.jar:?]
    at cpw.mods.cl.ModuleClassLoader.readerToClass(ModuleClassLoader.java:113) ~[securejarhandler-2.1.4.jar:?]
    at cpw.mods.cl.ModuleClassLoader.lambda$findClass$15(ModuleClassLoader.java:219) ~[securejarhandler-2.1.4.jar:?]
    at cpw.mods.cl.ModuleClassLoader.loadFromModule(ModuleClassLoader.java:229) ~[securejarhandler-2.1.4.jar:?]
    at cpw.mods.cl.ModuleClassLoader.findClass(ModuleClassLoader.java:219) ~[securejarhandler-2.1.4.jar:?]
    at cpw.mods.cl.ModuleClassLoader.loadClass(ModuleClassLoader.java:135) ~[securejarhandler-2.1.4.jar:?]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
    at com.simibubi.create.content.kinetics.saw.CuttingRecipe.lambda$getJEISubCategory$0(CuttingRecipe.java:66) ~[?:?]
    at com.simibubi.create.compat.jei.category.SequencedAssemblyCategory.lambda$getSubCategory$1(SequencedAssemblyCategory.java:82) ~[?:?]
    at java.util.HashMap.computeIfAbsent(HashMap.java:1220) ~[?:?]
    at com.simibubi.create.compat.jei.category.SequencedAssemblyCategory.getSubCategory(SequencedAssemblyCategory.java:78) ~[?:?]
    at com.simibubi.create.compat.jei.category.SequencedAssemblyCategory.setRecipe(SequencedAssemblyCategory.java:66) ~[?:?]
    at com.simibubi.create.compat.jei.category.SequencedAssemblyCategory.setRecipe(SequencedAssemblyCategory.java:33) ~[?:?]
    at me.shedaniel.rei.jeicompat.wrap.JEIWrappedDisplay.cache(JEIWrappedDisplay.java:68) ~[?:?]
    at me.shedaniel.rei.jeicompat.wrap.JEIWrappedDisplay.<init>(JEIWrappedDisplay.java:62) ~[?:?]
    at me.shedaniel.rei.jeicompat.wrap.JEIRecipeRegistration.lambda$createDisplayFiller$1(JEIRecipeRegistration.java:134) ~[?:?]
    at me.shedaniel.rei.jeicompat.wrap.JEIRecipeRegistration.lambda$addRecipesOptimized$5(JEIRecipeRegistration.java:164) ~[?:?]
    at me.shedaniel.rei.api.common.util.CollectionUtils.map(CollectionUtils.java:128) ~[?:?]
    at me.shedaniel.rei.jeicompat.wrap.JEIRecipeRegistration.lambda$addRecipesOptimized$6(JEIRecipeRegistration.java:177) ~[?:?]
    at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) [?:?]
    at java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1760) [?:?]
    at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) [?:?]
    at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) [?:?]
    at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) [?:?]
    at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) [?:?]
    at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165) [?:?]
[17:47:03] [ForkJoinPool.commonPool-worker-13/ERROR]: Could not find parent com/simibubi/create/compat/jei/category/sequencedAssembly/SequencedAssemblySubCategory for class com/simibubi/create/compat/jei/category/sequencedAssembly/SequencedAssemblySubCategory$AssemblyPressing in classloader jdk.internal.loader.ClassLoaders$AppClassLoader@6442b0a6 on thread Thread[ForkJoinPool.commonPool-worker-13,1,main]
[17:47:03] [ForkJoinPool.commonPool-worker-13/ERROR]: An error occurred building event handler
java.lang.ClassNotFoundException: com.simibubi.create.compat.jei.category.sequencedAssembly.SequencedAssemblySubCategory
    at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[?:?]
    at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[?:?]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
    at net.minecraftforge.eventbus.EventSubclassTransformer.buildEvents(EventSubclassTransformer.java:92) ~[eventbus-6.0.3.jar:?]
    at net.minecraftforge.eventbus.EventSubclassTransformer.transform(EventSubclassTransformer.java:44) ~[eventbus-6.0.3.jar:?]
    at net.minecraftforge.eventbus.EventBusEngine.processClass(EventBusEngine.java:26) ~[eventbus-6.0.3.jar:?]
    at net.minecraftforge.eventbus.service.ModLauncherService.processClassWithFlags(ModLauncherService.java:32) ~[eventbus-6.0.3.jar:6.0.3+6.0.3+master.039e4ea9]
    at cpw.mods.modlauncher.LaunchPluginHandler.offerClassNodeToPlugins(LaunchPluginHandler.java:88) ~[modlauncher-10.0.8.jar:?]
    at cpw.mods.modlauncher.ClassTransformer.transform(ClassTransformer.java:120) ~[modlauncher-10.0.8.jar:?]
    at cpw.mods.modlauncher.TransformingClassLoader.maybeTransformClassBytes(TransformingClassLoader.java:50) ~[modlauncher-10.0.8.jar:?]
    at cpw.mods.cl.ModuleClassLoader.readerToClass(ModuleClassLoader.java:113) ~[securejarhandler-2.1.4.jar:?]
    at cpw.mods.cl.ModuleClassLoader.lambda$findClass$15(ModuleClassLoader.java:219) ~[securejarhandler-2.1.4.jar:?]
    at cpw.mods.cl.ModuleClassLoader.loadFromModule(ModuleClassLoader.java:229) ~[securejarhandler-2.1.4.jar:?]
    at cpw.mods.cl.ModuleClassLoader.findClass(ModuleClassLoader.java:219) ~[securejarhandler-2.1.4.jar:?]
    at cpw.mods.cl.ModuleClassLoader.loadClass(ModuleClassLoader.java:135) ~[securejarhandler-2.1.4.jar:?]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
    at com.simibubi.create.content.kinetics.press.PressingRecipe.lambda$getJEISubCategory$0(PressingRecipe.java:66) ~[?:?]
    at com.simibubi.create.compat.jei.category.SequencedAssemblyCategory.lambda$getSubCategory$1(SequencedAssemblyCategory.java:82) ~[?:?]
    at java.util.HashMap.computeIfAbsent(HashMap.java:1220) ~[?:?]
    at com.simibubi.create.compat.jei.category.SequencedAssemblyCategory.getSubCategory(SequencedAssemblyCategory.java:78) ~[?:?]
    at com.simibubi.create.compat.jei.category.SequencedAssemblyCategory.setRecipe(SequencedAssemblyCategory.java:66) ~[?:?]
    at com.simibubi.create.compat.jei.category.SequencedAssemblyCategory.setRecipe(SequencedAssemblyCategory.java:33) ~[?:?]
    at me.shedaniel.rei.jeicompat.wrap.JEIWrappedDisplay.cache(JEIWrappedDisplay.java:68) ~[?:?]
    at me.shedaniel.rei.jeicompat.wrap.JEIWrappedDisplay.<init>(JEIWrappedDisplay.java:62) ~[?:?]
    at me.shedaniel.rei.jeicompat.wrap.JEIRecipeRegistration.lambda$createDisplayFiller$1(JEIRecipeRegistration.java:134) ~[?:?]
    at me.shedaniel.rei.jeicompat.wrap.JEIRecipeRegistration.lambda$addRecipesOptimized$5(JEIRecipeRegistration.java:164) ~[?:?]
    at me.shedaniel.rei.api.common.util.CollectionUtils.map(CollectionUtils.java:128) ~[?:?]
    at me.shedaniel.rei.jeicompat.wrap.JEIRecipeRegistration.lambda$addRecipesOptimized$6(JEIRecipeRegistration.java:177) ~[?:?]
    at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) [?:?]
    at java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1760) [?:?]
    at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) [?:?]
    at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) [?:?]
    at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) [?:?]
    at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) [?:?]
    at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165) [?:?]
[17:47:03] [ForkJoinPool.commonPool-worker-13/ERROR]: Could not find parent com/simibubi/create/compat/jei/category/sequencedAssembly/SequencedAssemblySubCategory for class com/simibubi/create/compat/jei/category/sequencedAssembly/SequencedAssemblySubCategory$AssemblySpouting in classloader jdk.internal.loader.ClassLoaders$AppClassLoader@6442b0a6 on thread Thread[ForkJoinPool.commonPool-worker-13,1,main]
[17:47:03] [ForkJoinPool.commonPool-worker-13/ERROR]: An error occurred building event handler
java.lang.ClassNotFoundException: com.simibubi.create.compat.jei.category.sequencedAssembly.SequencedAssemblySubCategory
    at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[?:?]
    at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[?:?]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
    at net.minecraftforge.eventbus.EventSubclassTransformer.buildEvents(EventSubclassTransformer.java:92) ~[eventbus-6.0.3.jar:?]
    at net.minecraftforge.eventbus.EventSubclassTransformer.transform(EventSubclassTransformer.java:44) ~[eventbus-6.0.3.jar:?]
    at net.minecraftforge.eventbus.EventBusEngine.processClass(EventBusEngine.java:26) ~[eventbus-6.0.3.jar:?]
    at net.minecraftforge.eventbus.service.ModLauncherService.processClassWithFlags(ModLauncherService.java:32) ~[eventbus-6.0.3.jar:6.0.3+6.0.3+master.039e4ea9]
    at cpw.mods.modlauncher.LaunchPluginHandler.offerClassNodeToPlugins(LaunchPluginHandler.java:88) ~[modlauncher-10.0.8.jar:?]
    at cpw.mods.modlauncher.ClassTransformer.transform(ClassTransformer.java:120) ~[modlauncher-10.0.8.jar:?]
    at cpw.mods.modlauncher.TransformingClassLoader.maybeTransformClassBytes(TransformingClassLoader.java:50) ~[modlauncher-10.0.8.jar:?]
    at cpw.mods.cl.ModuleClassLoader.readerToClass(ModuleClassLoader.java:113) ~[securejarhandler-2.1.4.jar:?]
    at cpw.mods.cl.ModuleClassLoader.lambda$findClass$15(ModuleClassLoader.java:219) ~[securejarhandler-2.1.4.jar:?]
    at cpw.mods.cl.ModuleClassLoader.loadFromModule(ModuleClassLoader.java:229) ~[securejarhandler-2.1.4.jar:?]
    at cpw.mods.cl.ModuleClassLoader.findClass(ModuleClassLoader.java:219) ~[securejarhandler-2.1.4.jar:?]
    at cpw.mods.cl.ModuleClassLoader.loadClass(ModuleClassLoader.java:135) ~[securejarhandler-2.1.4.jar:?]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
    at com.simibubi.create.content.fluids.transfer.FillingRecipe.lambda$getJEISubCategory$0(FillingRecipe.java:85) ~[?:?]
    at com.simibubi.create.compat.jei.category.SequencedAssemblyCategory.lambda$getSubCategory$1(SequencedAssemblyCategory.java:82) ~[?:?]
    at java.util.HashMap.computeIfAbsent(HashMap.java:1220) ~[?:?]
    at com.simibubi.create.compat.jei.category.SequencedAssemblyCategory.getSubCategory(SequencedAssemblyCategory.java:78) ~[?:?]
    at com.simibubi.create.compat.jei.category.SequencedAssemblyCategory.setRecipe(SequencedAssemblyCategory.java:66) ~[?:?]
    at com.simibubi.create.compat.jei.category.SequencedAssemblyCategory.setRecipe(SequencedAssemblyCategory.java:33) ~[?:?]
    at me.shedaniel.rei.jeicompat.wrap.JEIWrappedDisplay.cache(JEIWrappedDisplay.java:68) ~[?:?]
    at me.shedaniel.rei.jeicompat.wrap.JEIWrappedDisplay.<init>(JEIWrappedDisplay.java:62) ~[?:?]
    at me.shedaniel.rei.jeicompat.wrap.JEIRecipeRegistration.lambda$createDisplayFiller$1(JEIRecipeRegistration.java:134) ~[?:?]
    at me.shedaniel.rei.jeicompat.wrap.JEIRecipeRegistration.lambda$addRecipesOptimized$5(JEIRecipeRegistration.java:164) ~[?:?]
    at me.shedaniel.rei.api.common.util.CollectionUtils.map(CollectionUtils.java:128) ~[?:?]
    at me.shedaniel.rei.jeicompat.wrap.JEIRecipeRegistration.lambda$addRecipesOptimized$6(JEIRecipeRegistration.java:177) ~[?:?]
    at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) [?:?]
    at java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1760) [?:?]
    at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) [?:?]
    at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) [?:?]
    at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) [?:?]
    at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) [?:?]
    at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165) [?:?]

Anything else?

No response

By submitting this issue, I have included the necessary logs by pasting the contents into the correct location or attaching the file as an upload.

By submitting this issue, I have confirmed my REI and REI's dependencies are up to date.

dadobug1111 commented 9 months ago

I have been able to replicate this in 1.20.1 It seems to happen if you open your/any inventory too soon after joining. If REI gives a warning that recipe calculations are incomplete, it breaks.

Good news: Wait a bit after world join, and it should work.

dadobug1111 commented 9 months ago

Nevermind. It seems that joining, leaving, and joining again is what fixes it. Strange...

Nessiesson commented 3 months ago

One potential (hack)fix(?) for this is to replace the subCategories HashMap with a ConcurrentHashMap.

Explode007 commented 1 month ago

One potential (hack)fix(?) for this is to replace the subCategories HashMap with a ConcurrentHashMap.

Have you tested this thoroughly? I want your opinion, im going to try it out now because its really odd. Sometimes it loads some recipes, other times it doesn't, and few times it loads half and half.

Explode007 commented 1 month ago

I have done some testing, isolating mods and adding a bunch, basically reconstructing my pack. It seems the issue is related to larger amounts of recipes, seeming as with a medium sized amount <100 mods loads everything fine. It seems like it loses reference to the createSequencedAssembly class or something of the sorts when this happens.

Nevermind. It seems that joining, leaving, and joining again is what fixes it. Strange...

The only fix right now has been this, you have to rejoin multiple times into the world and wait for REI to load without opening your inventory at all. The combination of these two seems to consistently provide all the recipes you desire. If you add or remove mods, sometimes even relaunching your game seems to keep breaking this.

For me, sometimes I join and there are no recipes, then rejoining brings some recipes, and rejoining again a second or third time seems to bring them back. This is all the information I know at the moment.