Uploaded image for project: 'Minecraft: Java Edition'
  1. Minecraft: Java Edition
  2. MC-253615

Datapacks custom dimensions giving non-descriptive errors when creating the custom dimensions

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Cannot Reproduce
    • None
    • 1.19
    • None
    • Unconfirmed
    • (Unassigned)

      Custom dimension errors in 1.19 are less descriptive than they were in 1.16.x and 1.17.x. Making it hard to identify what is failing when designing a custom dimension. Steps to reproduce:

      1. Launch Minecraft.
      2. Click on Singleplayer. If a world already exists, click on Create New World.
      3. Click on Data Packs.
      4. Drag and drop the datapack myemptydimension_1_19.zip myemptydimension_1_19.zip. Then click Yes.
      5. Move the datapack to show under Selected on the game screen.
      6. Click Done.

      It gives this generic error

      eoc Render thread Failed to validate datapack
      java.util.concurrent.CompletionException: java.lang.IllegalStateException: Trying to access unbound value 'ResourceKey[minecraft:dimension / myemptydimension:myempty_dimension]' from registry Registry[ResourceKey[minecraft:root / minecraft:dimension] (Stable)]
      	at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:332)
      	at java.base/java.util.concurrent.CompletableFuture.uniAcceptNow(CompletableFuture.java:747)
      	at java.base/java.util.concurrent.CompletableFuture.uniAcceptStage(CompletableFuture.java:735)
      	at java.base/java.util.concurrent.CompletableFuture.thenAcceptAsync(CompletableFuture.java:2191)
      	at eoc.a(SourceFile:543)
      	at enf.c(SourceFile:49)
      	at eng.ah_(SourceFile:78)
      	at eng.b(SourceFile:95)
      	at egs.d(SourceFile:40)
      	at egm.a(SourceFile:16)
      	at egq.a(SourceFile:120)
      	at ehp.a(SourceFile:27)
      	at eew.b(SourceFile:94)
      	at ekj.a(SourceFile:491)
      	at eew.a(SourceFile:94)
      	at eew.c(SourceFile:165)
      	at ayc.execute(SourceFile:103)
      	at eew.b(SourceFile:165)
      	at org.lwjgl.glfw.GLFWMouseButtonCallbackI.callback(GLFWMouseButtonCallbackI.java:43)
      	at org.lwjgl.system.JNI.invokeV(Native Method)
      	at org.lwjgl.glfw.GLFW.glfwPollEvents(GLFW.java:3403)
      	at com.mojang.blaze3d.systems.RenderSystem.flipFrame(SourceFile:197)
      	at dyx.e(SourceFile:310)
      	at eev.f(SourceFile:1171)
      	at eev.e(SourceFile:734)
      	at net.minecraft.client.main.Main.main(SourceFile:237)
      Caused by: java.lang.IllegalStateException: Trying to access unbound value 'ResourceKey[minecraft:dimension / myemptydimension:myempty_dimension]' from registry Registry[ResourceKey[minecraft:root / minecraft:dimension] (Stable)]
      	at hc$c.a(SourceFile:159)
      	at hh.a(SourceFile:265)
      	at hh.a(SourceFile:184)
      	at cxy.a(SourceFile:67)
      	at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
      	at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1707)
      	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
      	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
      	at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310)
      	at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735)
      	at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
      	at cxy.a(SourceFile:66)
      	at com.mojang.datafixers.util.Pair.mapFirst(Pair.java:64)
      	at com.mojang.serialization.Decoder$2.lambda$decode$0(Decoder.java:63)
      	at java.base/java.util.Optional.map(Optional.java:260)
      	at com.mojang.serialization.DataResult.lambda$map$5(DataResult.java:112)
      	at com.mojang.datafixers.util.Either$Right.mapBoth(Either.java:94)
      	at com.mojang.serialization.DataResult.map(DataResult.java:110)
      	at com.mojang.serialization.Decoder$2.decode(Decoder.java:63)
      	at com.mojang.serialization.Codec$2.decode(Codec.java:71)
      	at com.mojang.serialization.Decoder.parse(Decoder.java:18)
      	at com.mojang.serialization.codecs.FieldDecoder.decode(FieldDecoder.java:29)
      	at com.mojang.serialization.MapCodec$1.decode(MapCodec.java:34)
      	at com.mojang.serialization.codecs.RecordCodecBuilder$Instance$5.decode(RecordCodecBuilder.java:324)
      	at com.mojang.serialization.codecs.RecordCodecBuilder$2.decode(RecordCodecBuilder.java:107)
      	at com.mojang.serialization.MapDecoder.lambda$compressedDecode$0(MapDecoder.java:52)
      	at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
      	at com.mojang.datafixers.util.Either$Left.map(Either.java:38)
      	at com.mojang.serialization.DataResult.flatMap(DataResult.java:136)
      	at com.mojang.serialization.MapDecoder.compressedDecode(MapDecoder.java:52)
      	at com.mojang.serialization.MapCodec$MapCodecCodec.decode(MapCodec.java:91)
      	at com.mojang.serialization.Decoder$1.decode(Decoder.java:49)
      	at com.mojang.serialization.Codec$2.decode(Codec.java:71)
      	at com.mojang.serialization.Decoder.parse(Decoder.java:18)
      	at eoc.a(SourceFile:518)
      	at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
      	at com.mojang.datafixers.util.Either$Left.map(Either.java:38)
      	at com.mojang.serialization.DataResult.flatMap(DataResult.java:136)
      	at eoc.a(SourceFile:518)
      	at abb.a(SourceFile:24)
      	at eoc.a(SourceFile:509)
      	... 21 more

      Performing the same steps on 1.17.1 with the datapack myemptydimension_1_17_1.zip, which is the equivalent of the one used above in 1.19 but for 1.17.1, one gets the missing layers message as a descriptive error which helps understand what is missing:

      eej Render thread Error parsing worldgen settings after loading data packs: No key layers in MapLike[{"biome":"minecraft:plains"}]; No key structures in MapLike[{"biome":"minecraft:plains"}]

      Looking at the error in 1.17.1, it is more descriptive than the one in 1.19 for the same problem and it also doesn't have a long stacktrace after it.

      Attached is a video (Custom Dimensions.mp4) showing the differences between these two versions. 1.17.1 outputs to the error pipeline and gives a descriptive error. 1.19 outputs to the warning pipeline and it doesn't give a descriptive error of what is missing.

      As it stands on 1.19, making custom dimensions using datapacks is a guessing task of what may be missing.

            Unassigned Unassigned
            Aquaglyph Aquaglyph
            Votes:
            2 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: