-
Bug
-
Resolution: Fixed
-
24w34a, 24w35a, 24w36a, 24w37a, 24w38a, 24w39a
-
None
-
Confirmed
-
Data Packs
-
Normal
-
Platform
If a biome, structure, enchantment, or loot table tag is included in a data pack, which includes an entry with required set to false, and that biome/structure/enchantment/loot_table ID is not present in any data packs, the data pack fails to validate and the game tries to launch in Safe Mode. The output log produces this error (example with biome tag):
deobf_latest.log
[Render thread/ERROR]: Registry loading errors: > Errors in registry minecraft:root: >> Errors in element minecraft:worldgen/biome: java.lang.IllegalStateException: Unbound values in registry ResourceKey[minecraft:root / minecraft:worldgen/biome]: [test:test] at net.minecraft.core.MappedRegistry.net.minecraft.core.Registry freeze()(MappedRegistry.java:333) at net.minecraft.resources.RegistryDataLoader.void lambda$load$6(java.util.Map,net.minecraft.resources.RegistryDataLoader$Loader)(RegistryDataLoader.java:188) at java.base/java.lang.Iterable.forEach(Iterable.java:75) at net.minecraft.resources.RegistryDataLoader.net.minecraft.core.RegistryAccess$Frozen load(net.minecraft.resources.RegistryDataLoader$LoadingFunction,java.util.List,java.util.List)(RegistryDataLoader.java:185) at net.minecraft.resources.RegistryDataLoader.net.minecraft.core.RegistryAccess$Frozen load(net.minecraft.server.packs.resources.ResourceManager,java.util.List,java.util.List)(RegistryDataLoader.java:164) at net.minecraft.resources.RegistryDataLoader.void lambda$load$2(net.minecraft.server.packs.resources.ResourceManager,net.minecraft.resources.RegistryDataLoader$Loader,net.minecraft.resources.RegistryOps$RegistryInfoLookup)(RegistryDataLoader.java:164) at net.minecraft.server.WorldLoader.java.util.concurrent.CompletableFuture load(net.minecraft.server.WorldLoader$InitConfig,net.minecraft.server.WorldLoader$WorldDataSupplier,net.minecraft.server.WorldLoader$ResultFactory,java.util.concurrent.Executor,java.util.concurrent.Executor)(WorldLoader.java:41) at net.minecraft.client.gui.screens.worldselection.CreateWorldScreen.void applyNewPackConfig(net.minecraft.server.packs.repository.PackRepository,net.minecraft.world.level.WorldDataConfiguration,java.util.function.Consumer)(CreateWorldScreen.java:574) at net.minecraft.client.gui.screens.worldselection.CreateWorldScreen.void tryApplyNewDataPacks(net.minecraft.server.packs.repository.PackRepository,boolean,java.util.function.Consumer)(CreateWorldScreen.java:564) at net.minecraft.client.gui.screens.worldselection.CreateWorldScreen.void lambda$openDataPackSelectionScreen$8(net.minecraft.server.packs.repository.PackRepository)(CreateWorldScreen.java:536) at net.minecraft.client.gui.screens.packs.PackSelectionModel.void commit()(PackSelectionModel.java:56) at net.minecraft.client.gui.screens.packs.PackSelectionScreen.void onClose()(PackSelectionScreen.java:94) at net.minecraft.client.gui.screens.packs.PackSelectionScreen.void lambda$init$1(net.minecraft.client.gui.components.Button)(PackSelectionScreen.java:124) at net.minecraft.client.gui.components.Button.void onPress()(Button.java:96) at net.minecraft.client.gui.components.AbstractButton.void onClick(double,double)(AbstractButton.java:43) at net.minecraft.client.gui.components.AbstractWidget.boolean mouseClicked(double,double,int)(AbstractWidget.java:141) at net.minecraft.client.gui.components.AbstractWidget.void updateWidgetNarration(net.minecraft.client.gui.narration.NarrationElementOutput)(AbstractWidget.java:141) at net.minecraft.client.gui.components.events.ContainerEventHandler.boolean mouseClicked(double,double,int)(ContainerEventHandler.java:38) at net.minecraft.client.gui.components.events.ContainerEventHandler.void setFocused(net.minecraft.client.gui.components.events.GuiEventListener)(ContainerEventHandler.java:38) at net.minecraft.client.MouseHandler.void lambda$onPress$0(boolean[],net.minecraft.client.gui.screens.Screen,double,double,int)(MouseHandler.java:111) at net.minecraft.client.gui.screens.Screen.void wrapScreenError(java.lang.Runnable,java.lang.String,java.lang.String)(Screen.java:429) at net.minecraft.client.MouseHandler.void onPress(long,int,int,int)(MouseHandler.java:111) at net.minecraft.client.MouseHandler.void lambda$setup$4(long,int,int,int)(MouseHandler.java:189) at net.minecraft.util.thread.BlockableEventLoop.void execute(java.lang.Runnable)(BlockableEventLoop.java:110) at net.minecraft.client.MouseHandler.void lambda$setup$5(long,int,int,int)(MouseHandler.java:189) at org.lwjgl.glfw.GLFWMouseButtonCallbackI.null callback(null)(GLFWMouseButtonCallbackI.java:43) at org.lwjgl.system.JNI.null invokeV(null)(JNI.java) at org.lwjgl.glfw.GLFW.null glfwWaitEventsTimeout(null)(GLFW.java:3509) at com.mojang.blaze3d.systems.RenderSystem.void limitDisplayFPS(int)(RenderSystem.java:178) at net.minecraft.client.Minecraft.void runTick(boolean)(Minecraft.java:1327) at net.minecraft.client.Minecraft.void run()(Minecraft.java:898) at net.minecraft.client.main.Main.void main(java.lang.String[])(Main.java:256) [Render thread/WARN]: Failed to validate datapack java.util.concurrent.CompletionException: net.minecraft.ReportedException: Registry Loading at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:332) ~[?:?] at java.base/java.util.concurrent.CompletableFuture.uniApplyNow(CompletableFuture.java:674) ~[?:?] at java.base/java.util.concurrent.CompletableFuture.uniApplyStage(CompletableFuture.java:662) ~[?:?] at java.base/java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:2200) ~[?:?] at net.minecraft.client.gui.screens.worldselection.CreateWorldScreen.void applyNewPackConfig(net.minecraft.server.packs.repository.PackRepository,net.minecraft.world.level.WorldDataConfiguration,java.util.function.Consumer)(CreateWorldScreen.java:604) ~[24w34a.jar:?] at net.minecraft.client.gui.screens.worldselection.CreateWorldScreen.void tryApplyNewDataPacks(net.minecraft.server.packs.repository.PackRepository,boolean,java.util.function.Consumer)(CreateWorldScreen.java:564) ~[24w34a.jar:?] at net.minecraft.client.gui.screens.worldselection.CreateWorldScreen.void lambda$openDataPackSelectionScreen$8(net.minecraft.server.packs.repository.PackRepository)(CreateWorldScreen.java:536) ~[24w34a.jar:?] at net.minecraft.client.gui.screens.packs.PackSelectionModel.void commit()(PackSelectionModel.java:56) ~[24w34a.jar:?] at net.minecraft.client.gui.screens.packs.PackSelectionScreen.void onClose()(PackSelectionScreen.java:94) ~[24w34a.jar:?] at net.minecraft.client.gui.screens.packs.PackSelectionScreen.void lambda$init$1(net.minecraft.client.gui.components.Button)(PackSelectionScreen.java:124) ~[24w34a.jar:?] at net.minecraft.client.gui.components.Button.void onPress()(Button.java:96) ~[24w34a.jar:?] at net.minecraft.client.gui.components.AbstractButton.void onClick(double,double)(AbstractButton.java:43) ~[24w34a.jar:?] at net.minecraft.client.gui.components.AbstractWidget.boolean mouseClicked(double,double,int)(AbstractWidget.java:141) ~[24w34a.jar:?] at net.minecraft.client.gui.components.AbstractWidget.void updateWidgetNarration(net.minecraft.client.gui.narration.NarrationElementOutput)(AbstractWidget.java:141) ~[24w34a.jar:?] at net.minecraft.client.gui.components.events.ContainerEventHandler.boolean mouseClicked(double,double,int)(ContainerEventHandler.java:38) ~[24w34a.jar:?] at net.minecraft.client.gui.components.events.ContainerEventHandler.void setFocused(net.minecraft.client.gui.components.events.GuiEventListener)(ContainerEventHandler.java:38) ~[24w34a.jar:?] at net.minecraft.client.MouseHandler.void lambda$onPress$0(boolean[],net.minecraft.client.gui.screens.Screen,double,double,int)(MouseHandler.java:111) ~[24w34a.jar:?] at net.minecraft.client.gui.screens.Screen.void wrapScreenError(java.lang.Runnable,java.lang.String,java.lang.String)(Screen.java:429) ~[24w34a.jar:?] at net.minecraft.client.MouseHandler.void onPress(long,int,int,int)(MouseHandler.java:111) ~[24w34a.jar:?] at net.minecraft.client.MouseHandler.void lambda$setup$4(long,int,int,int)(MouseHandler.java:189) ~[24w34a.jar:?] at net.minecraft.util.thread.BlockableEventLoop.void execute(java.lang.Runnable)(BlockableEventLoop.java:110) ~[24w34a.jar:?] at net.minecraft.client.MouseHandler.void lambda$setup$5(long,int,int,int)(MouseHandler.java:189) ~[24w34a.jar:?] at org.lwjgl.glfw.GLFWMouseButtonCallbackI.callback(GLFWMouseButtonCallbackI.java:43) [lwjgl-glfw-3.3.3.jar:build 5] at org.lwjgl.system.JNI.null invokeV(null)(JNI.java) ~[lwjgl-3.3.3.jar:build 5] at org.lwjgl.glfw.GLFW.glfwWaitEventsTimeout(GLFW.java:3509) [lwjgl-glfw-3.3.3.jar:build 5] at com.mojang.blaze3d.systems.RenderSystem.limitDisplayFPS(SourceFile:178) [24w34a.jar:?] at fil.c(SourceFile:1327) [24w34a.jar:?] at fil.f(SourceFile:898) [24w34a.jar:?] at net.minecraft.client.main.Main.main(SourceFile:256) [24w34a.jar:?] Caused by: net.minecraft.ReportedException: Registry Loading at net.minecraft.resources.RegistryDataLoader.net.minecraft.ReportedException createReportWithBriefInfo(java.util.Map)(RegistryDataLoader.java:267) ~[24w34a.jar:?] at net.minecraft.resources.RegistryDataLoader.net.minecraft.ReportedException logErrors(java.util.Map)(RegistryDataLoader.java:232) ~[24w34a.jar:?] at net.minecraft.resources.RegistryDataLoader.net.minecraft.core.RegistryAccess$Frozen load(net.minecraft.resources.RegistryDataLoader$LoadingFunction,java.util.List,java.util.List)(RegistryDataLoader.java:199) ~[24w34a.jar:?] at net.minecraft.resources.RegistryDataLoader.net.minecraft.core.RegistryAccess$Frozen load(net.minecraft.server.packs.resources.ResourceManager,java.util.List,java.util.List)(RegistryDataLoader.java:164) ~[24w34a.jar:?] at net.minecraft.resources.RegistryDataLoader.void lambda$load$2(net.minecraft.server.packs.resources.ResourceManager,net.minecraft.resources.RegistryDataLoader$Loader,net.minecraft.resources.RegistryOps$RegistryInfoLookup)(RegistryDataLoader.java:164) ~[24w34a.jar:?] at net.minecraft.server.WorldLoader.java.util.concurrent.CompletableFuture load(net.minecraft.server.WorldLoader$InitConfig,net.minecraft.server.WorldLoader$WorldDataSupplier,net.minecraft.server.WorldLoader$ResultFactory,java.util.concurrent.Executor,java.util.concurrent.Executor)(WorldLoader.java:41) ~[24w34a.jar:?] at net.minecraft.client.gui.screens.worldselection.CreateWorldScreen.void applyNewPackConfig(net.minecraft.server.packs.repository.PackRepository,net.minecraft.world.level.WorldDataConfiguration,java.util.function.Consumer)(CreateWorldScreen.java:574) ~[24w34a.jar:?] ... 22 more Caused by: java.lang.IllegalStateException: Failed to load registries due to errors at net.minecraft.resources.RegistryDataLoader.net.minecraft.ReportedException createReportWithBriefInfo(java.util.Map)(RegistryDataLoader.java:251) ~[24w34a.jar:?] at net.minecraft.resources.RegistryDataLoader.net.minecraft.ReportedException logErrors(java.util.Map)(RegistryDataLoader.java:232) ~[24w34a.jar:?] at net.minecraft.resources.RegistryDataLoader.net.minecraft.core.RegistryAccess$Frozen load(net.minecraft.resources.RegistryDataLoader$LoadingFunction,java.util.List,java.util.List)(RegistryDataLoader.java:199) ~[24w34a.jar:?] at net.minecraft.resources.RegistryDataLoader.net.minecraft.core.RegistryAccess$Frozen load(net.minecraft.server.packs.resources.ResourceManager,java.util.List,java.util.List)(RegistryDataLoader.java:164) ~[24w34a.jar:?] at net.minecraft.resources.RegistryDataLoader.void lambda$load$2(net.minecraft.server.packs.resources.ResourceManager,net.minecraft.resources.RegistryDataLoader$Loader,net.minecraft.resources.RegistryOps$RegistryInfoLookup)(RegistryDataLoader.java:164) ~[24w34a.jar:?] at net.minecraft.server.WorldLoader.java.util.concurrent.CompletableFuture load(net.minecraft.server.WorldLoader$InitConfig,net.minecraft.server.WorldLoader$WorldDataSupplier,net.minecraft.server.WorldLoader$ResultFactory,java.util.concurrent.Executor,java.util.concurrent.Executor)(WorldLoader.java:41) ~[24w34a.jar:?] at net.minecraft.client.gui.screens.worldselection.CreateWorldScreen.void applyNewPackConfig(net.minecraft.server.packs.repository.PackRepository,net.minecraft.world.level.WorldDataConfiguration,java.util.function.Consumer)(CreateWorldScreen.java:574) ~[24w34a.jar:?] ... 22 more
And then lists the IDs that were listed, but are missing.
Expected behavior is that if these IDs are not present among any loaded data packs, because they are not required, the game will ignore them for these tags and validate without them.
Steps to recreate:
- Create a tag in <namespace>/tags/worldgen/biome
- Make this tag include at least one biome that does not exist, as an object with "required": false. For example, "test:test"
- Attempt to load the data pack in a world
- Observe that the game attempts to load the world in Safe Mode, and the output log has produced the above error.
- Perform the same test in 1.21.1 and note that the data pack validates as expected.
Example tag for convenience:
{ "values": [ "minecraft:plains", { "id": "test:test", "required": false } ] }
- is duplicated by
-
MC-276140 Required:false not working in any tag list
- Resolved