The Bug
Features that are defined in a certain way cause the datapack to be unable to be applied.
In case the faulty feature is wrapped into for example another feature of type minecraft:decorated, you won't actually see any errors, as the inner feature seems to default to no_op in that case.
If and only if the outer feature errors, you actually see the error.
Some vanilla files from this dump are affected as well: https://twitter.com/slicedlime/status/1280893773296422912
This is the exception, that shows up:
java.lang.IllegalArgumentException: value already present: clh@77f95e19
at com.google.common.collect.HashBiMap.put(HashBiMap.java:287)
at com.google.common.collect.HashBiMap.put(HashBiMap.java:262)
at gh.a(SourceFile:64)
at gh.a(SourceFile:75)
at yb.b(SourceFile:66)
at yb$$Lambda$3899/603200739.apply(Unknown Source)
at com.mojang.datafixers.util.Pair.mapFirst(Pair.java:64)
at yb.a(SourceFile:65)
at yb$$Lambda$3898/1042558830.apply(Unknown Source)
at com.mojang.datafixers.util.Either$Left.mapBoth(Either.java:33)
at com.mojang.serialization.DataResult.map(DataResult.java:110)
at yb.a(SourceFile:65)
at ya.decode(SourceFile:36)
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$3.decode(RecordCodecBuilder.java:248)
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.MapDecoder$$Lambda$2993/543433178.apply(Unknown Source)
at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
at com.mojang.serialization.DataResult$$Lambda$632/2136614370.apply(Unknown Source)
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.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.MapDecoder$4.decode(MapDecoder.java:94)
at com.mojang.serialization.MapCodec$1.decode(MapCodec.java:34)
at com.mojang.serialization.codecs.KeyDispatchCodec.lambda$null$1(KeyDispatchCodec.java:67)
at com.mojang.serialization.codecs.KeyDispatchCodec$$Lambda$3844/965811562.apply(Unknown Source)
at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
at com.mojang.serialization.DataResult$$Lambda$632/2136614370.apply(Unknown Source)
at com.mojang.datafixers.util.Either$Left.map(Either.java:38)
at com.mojang.serialization.DataResult.flatMap(DataResult.java:136)
at com.mojang.serialization.codecs.KeyDispatchCodec.lambda$decode$2(KeyDispatchCodec.java:58)
at com.mojang.serialization.codecs.KeyDispatchCodec$$Lambda$3843/709506664.apply(Unknown Source)
at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
at com.mojang.serialization.DataResult$$Lambda$632/2136614370.apply(Unknown Source)
at com.mojang.datafixers.util.Either$Left.map(Either.java:38)
at com.mojang.serialization.DataResult.flatMap(DataResult.java:136)
at com.mojang.serialization.codecs.KeyDispatchCodec.decode(KeyDispatchCodec.java:56)
at com.mojang.serialization.MapCodec$3.decode(MapCodec.java:186)
at com.mojang.serialization.MapDecoder.lambda$compressedDecode$0(MapDecoder.java:52)
at com.mojang.serialization.MapDecoder$$Lambda$2993/543433178.apply(Unknown Source)
at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
at com.mojang.serialization.DataResult$$Lambda$632/2136614370.apply(Unknown Source)
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.parse(Decoder.java:18)
at yb.a(SourceFile:161)
at yb.a(SourceFile:139)
at yb.a(SourceFile:74)
at ya.decode(SourceFile:36)
at com.mojang.serialization.codecs.ListCodec.lambda$null$2(ListCodec.java:46)
at com.mojang.serialization.codecs.ListCodec$$Lambda$2996/136037594.accept(Unknown Source)
at com.mojang.serialization.JsonOps.lambda$getList$7(JsonOps.java:292)
at com.mojang.serialization.JsonOps$$Lambda$3872/198941055.accept(Unknown Source)
at com.mojang.serialization.codecs.ListCodec.lambda$decode$4(ListCodec.java:45)
at com.mojang.serialization.codecs.ListCodec$$Lambda$2995/1792087378.apply(Unknown Source)
at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
at com.mojang.serialization.DataResult$$Lambda$632/2136614370.apply(Unknown Source)
at com.mojang.datafixers.util.Either$Left.map(Either.java:38)
at com.mojang.serialization.DataResult.flatMap(DataResult.java:136)
at com.mojang.serialization.codecs.ListCodec.decode(ListCodec.java:39)
at com.mojang.serialization.Decoder$3.decode(Decoder.java:77)
at com.mojang.serialization.Codec$2.decode(Codec.java:71)
at com.mojang.serialization.codecs.ListCodec.lambda$null$2(ListCodec.java:46)
at com.mojang.serialization.codecs.ListCodec$$Lambda$2996/136037594.accept(Unknown Source)
at com.mojang.serialization.JsonOps.lambda$getList$7(JsonOps.java:292)
at com.mojang.serialization.JsonOps$$Lambda$3872/198941055.accept(Unknown Source)
at com.mojang.serialization.codecs.ListCodec.lambda$decode$4(ListCodec.java:45)
at com.mojang.serialization.codecs.ListCodec$$Lambda$2995/1792087378.apply(Unknown Source)
at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
at com.mojang.serialization.DataResult$$Lambda$632/2136614370.apply(Unknown Source)
at com.mojang.datafixers.util.Either$Left.map(Either.java:38)
at com.mojang.serialization.DataResult.flatMap(DataResult.java:136)
at com.mojang.serialization.codecs.ListCodec.decode(ListCodec.java:39)
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$7.decode(RecordCodecBuilder.java:409)
at com.mojang.serialization.codecs.RecordCodecBuilder$Instance$7.decode(RecordCodecBuilder.java:405)
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.MapDecoder$$Lambda$2993/543433178.apply(Unknown Source)
at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
at com.mojang.serialization.DataResult$$Lambda$632/2136614370.apply(Unknown Source)
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.parse(Decoder.java:18)
at yb.a(SourceFile:161)
at yb.a(SourceFile:139)
at yb.a(SourceFile:74)
at ya.decode(SourceFile:36)
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.MapDecoder$4.decode(MapDecoder.java:94)
at com.mojang.serialization.MapCodec$1.decode(MapCodec.java:34)
at com.mojang.serialization.MapCodec$2.decode(MapCodec.java:63)
at com.mojang.serialization.codecs.KeyDispatchCodec.lambda$null$1(KeyDispatchCodec.java:67)
at com.mojang.serialization.codecs.KeyDispatchCodec$$Lambda$3844/965811562.apply(Unknown Source)
at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
at com.mojang.serialization.DataResult$$Lambda$632/2136614370.apply(Unknown Source)
at com.mojang.datafixers.util.Either$Left.map(Either.java:38)
at com.mojang.serialization.DataResult.flatMap(DataResult.java:136)
at com.mojang.serialization.codecs.KeyDispatchCodec.lambda$decode$2(KeyDispatchCodec.java:58)
at com.mojang.serialization.codecs.KeyDispatchCodec$$Lambda$3843/709506664.apply(Unknown Source)
at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
at com.mojang.serialization.DataResult$$Lambda$632/2136614370.apply(Unknown Source)
at com.mojang.datafixers.util.Either$Left.map(Either.java:38)
at com.mojang.serialization.DataResult.flatMap(DataResult.java:136)
at com.mojang.serialization.codecs.KeyDispatchCodec.decode(KeyDispatchCodec.java:56)
at com.mojang.serialization.MapDecoder.lambda$compressedDecode$0(MapDecoder.java:52)
at com.mojang.serialization.MapDecoder$$Lambda$2993/543433178.apply(Unknown Source)
at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
at com.mojang.serialization.DataResult$$Lambda$632/2136614370.apply(Unknown Source)
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.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:323)
at com.mojang.serialization.codecs.RecordCodecBuilder$2.decode(RecordCodecBuilder.java:107)
at com.mojang.serialization.codecs.KeyDispatchCodec.lambda$null$1(KeyDispatchCodec.java:67)
at com.mojang.serialization.codecs.KeyDispatchCodec$$Lambda$3844/965811562.apply(Unknown Source)
at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
at com.mojang.serialization.DataResult$$Lambda$632/2136614370.apply(Unknown Source)
at com.mojang.datafixers.util.Either$Left.map(Either.java:38)
at com.mojang.serialization.DataResult.flatMap(DataResult.java:136)
at com.mojang.serialization.codecs.KeyDispatchCodec.lambda$decode$2(KeyDispatchCodec.java:58)
at com.mojang.serialization.codecs.KeyDispatchCodec$$Lambda$3843/709506664.apply(Unknown Source)
at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
at com.mojang.serialization.DataResult$$Lambda$632/2136614370.apply(Unknown Source)
at com.mojang.datafixers.util.Either$Left.map(Either.java:38)
at com.mojang.serialization.DataResult.flatMap(DataResult.java:136)
at com.mojang.serialization.codecs.KeyDispatchCodec.decode(KeyDispatchCodec.java:56)
at com.mojang.serialization.MapDecoder.lambda$compressedDecode$0(MapDecoder.java:52)
at com.mojang.serialization.MapDecoder$$Lambda$2993/543433178.apply(Unknown Source)
at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
at com.mojang.serialization.DataResult$$Lambda$632/2136614370.apply(Unknown Source)
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.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$3.decode(RecordCodecBuilder.java:249)
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.MapDecoder$$Lambda$2993/543433178.apply(Unknown Source)
at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
at com.mojang.serialization.DataResult$$Lambda$632/2136614370.apply(Unknown Source)
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.parse(Decoder.java:18)
at com.mojang.serialization.codecs.BaseMapCodec.lambda$decode$2(BaseMapCodec.java:31)
at com.mojang.serialization.codecs.BaseMapCodec$$Lambda$3836/1071236571.apply(Unknown Source)
at java.util.stream.ReduceOps$1ReducingSink.accept(ReduceOps.java:80)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1540)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:512)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.reduce(ReferencePipeline.java:484)
at com.mojang.serialization.codecs.BaseMapCodec.decode(BaseMapCodec.java:27)
at com.mojang.serialization.codecs.UnboundedMapCodec.lambda$decode$0(UnboundedMapCodec.java:38)
at com.mojang.serialization.codecs.UnboundedMapCodec$$Lambda$3834/849241856.apply(Unknown Source)
at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
at com.mojang.serialization.DataResult$$Lambda$632/2136614370.apply(Unknown Source)
at com.mojang.datafixers.util.Either$Left.map(Either.java:38)
at com.mojang.serialization.DataResult.flatMap(DataResult.java:136)
at com.mojang.serialization.codecs.UnboundedMapCodec.decode(UnboundedMapCodec.java:38)
at com.mojang.serialization.Decoder$2.decode(Decoder.java:63)
at com.mojang.serialization.Codec$2.decode(Codec.java:71)
at xz.decode(SourceFile:34)
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.MapDecoder$$Lambda$2993/543433178.apply(Unknown Source)
at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
at com.mojang.serialization.DataResult$$Lambda$632/2136614370.apply(Unknown Source)
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.decode(Decoder.java:22)
at com.mojang.serialization.Decoder.parse(Decoder.java:26)
at dar.a(SourceFile:115)
at dar.a(SourceFile:206)
at dar$$Lambda$3828/715497518.apply(Unknown Source)
at dar.a(SourceFile:169)
at dar.a(SourceFile:57)
at dar$a.a(SourceFile:323)
at dmk.a(SourceFile:1683)
at dmk$$Lambda$3144/1074078310.apply(Unknown Source)
at dmk.a(SourceFile:1906)
at dmk.a(SourceFile:1753)
at dmk.a(SourceFile:1697)
at duq$a.e(SourceFile:411)
at duq$a.a(SourceFile:321)
at duq$a.a(SourceFile:258)
at dnr.a(SourceFile:331)
at dor.a(SourceFile:27)
at dml.b(SourceFile:92)
at dml$$Lambda$2888/1388124035.run(Unknown Source)
at drd.a(SourceFile:431)
at dml.a(SourceFile:92)
at dml.c(SourceFile:162)
at dml$$Lambda$2887/66554485.run(Unknown Source)
at aqp.execute(SourceFile:94)
at dml.b(SourceFile:162)
at dml$$Lambda$2238/1027992087.invoke(Unknown Source)
at org.lwjgl.glfw.GLFWMouseButtonCallbackI.callback(GLFWMouseButtonCallbackI.java:36)
at org.lwjgl.system.JNI.invokeV(Native Method)
at org.lwjgl.glfw.GLFW.glfwWaitEventsTimeout(GLFW.java:3174)
at com.mojang.blaze3d.systems.RenderSystem.limitDisplayFPS(SourceFile:127)
at dmk.e(SourceFile:1043)
at dmk.e(SourceFile:653)
at net.minecraft.client.main.Main.main(SourceFile:215)java.lang.IllegalArgumentException: value already present: clh@77f95e19
at com.google.common.collect.HashBiMap.put(HashBiMap.java:287)
at com.google.common.collect.HashBiMap.put(HashBiMap.java:262)
at gh.a(SourceFile:64)
at gh.a(SourceFile:75)
at yb.b(SourceFile:66)
at yb$$Lambda$3899/603200739.apply(Unknown Source)
at com.mojang.datafixers.util.Pair.mapFirst(Pair.java:64)
at yb.a(SourceFile:65)
at yb$$Lambda$3898/1042558830.apply(Unknown Source)
at com.mojang.datafixers.util.Either$Left.mapBoth(Either.java:33)
at com.mojang.serialization.DataResult.map(DataResult.java:110)
at yb.a(SourceFile:65)
at ya.decode(SourceFile:36)
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$3.decode(RecordCodecBuilder.java:248)
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.MapDecoder$$Lambda$2993/543433178.apply(Unknown Source)
at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
at com.mojang.serialization.DataResult$$Lambda$632/2136614370.apply(Unknown Source)
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.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.MapDecoder$4.decode(MapDecoder.java:94)
at com.mojang.serialization.MapCodec$1.decode(MapCodec.java:34)
at com.mojang.serialization.codecs.KeyDispatchCodec.lambda$null$1(KeyDispatchCodec.java:67)
at com.mojang.serialization.codecs.KeyDispatchCodec$$Lambda$3844/965811562.apply(Unknown Source)
at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
at com.mojang.serialization.DataResult$$Lambda$632/2136614370.apply(Unknown Source)
at com.mojang.datafixers.util.Either$Left.map(Either.java:38)
at com.mojang.serialization.DataResult.flatMap(DataResult.java:136)
at com.mojang.serialization.codecs.KeyDispatchCodec.lambda$decode$2(KeyDispatchCodec.java:58)
at com.mojang.serialization.codecs.KeyDispatchCodec$$Lambda$3843/709506664.apply(Unknown Source)
at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
at com.mojang.serialization.DataResult$$Lambda$632/2136614370.apply(Unknown Source)
at com.mojang.datafixers.util.Either$Left.map(Either.java:38)
at com.mojang.serialization.DataResult.flatMap(DataResult.java:136)
at com.mojang.serialization.codecs.KeyDispatchCodec.decode(KeyDispatchCodec.java:56)
at com.mojang.serialization.MapCodec$3.decode(MapCodec.java:186)
at com.mojang.serialization.MapDecoder.lambda$compressedDecode$0(MapDecoder.java:52)
at com.mojang.serialization.MapDecoder$$Lambda$2993/543433178.apply(Unknown Source)
at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
at com.mojang.serialization.DataResult$$Lambda$632/2136614370.apply(Unknown Source)
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.parse(Decoder.java:18)
at yb.a(SourceFile:161)
at yb.a(SourceFile:139)
at yb.a(SourceFile:74)
at ya.decode(SourceFile:36)
at com.mojang.serialization.codecs.ListCodec.lambda$null$2(ListCodec.java:46)
at com.mojang.serialization.codecs.ListCodec$$Lambda$2996/136037594.accept(Unknown Source)
at com.mojang.serialization.JsonOps.lambda$getList$7(JsonOps.java:292)
at com.mojang.serialization.JsonOps$$Lambda$3872/198941055.accept(Unknown Source)
at com.mojang.serialization.codecs.ListCodec.lambda$decode$4(ListCodec.java:45)
at com.mojang.serialization.codecs.ListCodec$$Lambda$2995/1792087378.apply(Unknown Source)
at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
at com.mojang.serialization.DataResult$$Lambda$632/2136614370.apply(Unknown Source)
at com.mojang.datafixers.util.Either$Left.map(Either.java:38)
at com.mojang.serialization.DataResult.flatMap(DataResult.java:136)
at com.mojang.serialization.codecs.ListCodec.decode(ListCodec.java:39)
at com.mojang.serialization.Decoder$3.decode(Decoder.java:77)
at com.mojang.serialization.Codec$2.decode(Codec.java:71)
at com.mojang.serialization.codecs.ListCodec.lambda$null$2(ListCodec.java:46)
at com.mojang.serialization.codecs.ListCodec$$Lambda$2996/136037594.accept(Unknown Source)
at com.mojang.serialization.JsonOps.lambda$getList$7(JsonOps.java:292)
at com.mojang.serialization.JsonOps$$Lambda$3872/198941055.accept(Unknown Source)
at com.mojang.serialization.codecs.ListCodec.lambda$decode$4(ListCodec.java:45)
at com.mojang.serialization.codecs.ListCodec$$Lambda$2995/1792087378.apply(Unknown Source)
at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
at com.mojang.serialization.DataResult$$Lambda$632/2136614370.apply(Unknown Source)
at com.mojang.datafixers.util.Either$Left.map(Either.java:38)
at com.mojang.serialization.DataResult.flatMap(DataResult.java:136)
at com.mojang.serialization.codecs.ListCodec.decode(ListCodec.java:39)
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$7.decode(RecordCodecBuilder.java:409)
at com.mojang.serialization.codecs.RecordCodecBuilder$Instance$7.decode(RecordCodecBuilder.java:405)
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.MapDecoder$$Lambda$2993/543433178.apply(Unknown Source)
at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
at com.mojang.serialization.DataResult$$Lambda$632/2136614370.apply(Unknown Source)
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.parse(Decoder.java:18)
at yb.a(SourceFile:161)
at yb.a(SourceFile:139)
at yb.a(SourceFile:74)
at ya.decode(SourceFile:36)
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.MapDecoder$4.decode(MapDecoder.java:94)
at com.mojang.serialization.MapCodec$1.decode(MapCodec.java:34)
at com.mojang.serialization.MapCodec$2.decode(MapCodec.java:63)
at com.mojang.serialization.codecs.KeyDispatchCodec.lambda$null$1(KeyDispatchCodec.java:67)
at com.mojang.serialization.codecs.KeyDispatchCodec$$Lambda$3844/965811562.apply(Unknown Source)
at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
at com.mojang.serialization.DataResult$$Lambda$632/2136614370.apply(Unknown Source)
at com.mojang.datafixers.util.Either$Left.map(Either.java:38)
at com.mojang.serialization.DataResult.flatMap(DataResult.java:136)
at com.mojang.serialization.codecs.KeyDispatchCodec.lambda$decode$2(KeyDispatchCodec.java:58)
at com.mojang.serialization.codecs.KeyDispatchCodec$$Lambda$3843/709506664.apply(Unknown Source)
at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
at com.mojang.serialization.DataResult$$Lambda$632/2136614370.apply(Unknown Source)
at com.mojang.datafixers.util.Either$Left.map(Either.java:38)
at com.mojang.serialization.DataResult.flatMap(DataResult.java:136)
at com.mojang.serialization.codecs.KeyDispatchCodec.decode(KeyDispatchCodec.java:56)
at com.mojang.serialization.MapDecoder.lambda$compressedDecode$0(MapDecoder.java:52)
at com.mojang.serialization.MapDecoder$$Lambda$2993/543433178.apply(Unknown Source)
at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
at com.mojang.serialization.DataResult$$Lambda$632/2136614370.apply(Unknown Source)
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.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:323)
at com.mojang.serialization.codecs.RecordCodecBuilder$2.decode(RecordCodecBuilder.java:107)
at com.mojang.serialization.codecs.KeyDispatchCodec.lambda$null$1(KeyDispatchCodec.java:67)
at com.mojang.serialization.codecs.KeyDispatchCodec$$Lambda$3844/965811562.apply(Unknown Source)
at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
at com.mojang.serialization.DataResult$$Lambda$632/2136614370.apply(Unknown Source)
at com.mojang.datafixers.util.Either$Left.map(Either.java:38)
at com.mojang.serialization.DataResult.flatMap(DataResult.java:136)
at com.mojang.serialization.codecs.KeyDispatchCodec.lambda$decode$2(KeyDispatchCodec.java:58)
at com.mojang.serialization.codecs.KeyDispatchCodec$$Lambda$3843/709506664.apply(Unknown Source)
at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
at com.mojang.serialization.DataResult$$Lambda$632/2136614370.apply(Unknown Source)
at com.mojang.datafixers.util.Either$Left.map(Either.java:38)
at com.mojang.serialization.DataResult.flatMap(DataResult.java:136)
at com.mojang.serialization.codecs.KeyDispatchCodec.decode(KeyDispatchCodec.java:56)
at com.mojang.serialization.MapDecoder.lambda$compressedDecode$0(MapDecoder.java:52)
at com.mojang.serialization.MapDecoder$$Lambda$2993/543433178.apply(Unknown Source)
at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
at com.mojang.serialization.DataResult$$Lambda$632/2136614370.apply(Unknown Source)
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.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$3.decode(RecordCodecBuilder.java:249)
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.MapDecoder$$Lambda$2993/543433178.apply(Unknown Source)
at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
at com.mojang.serialization.DataResult$$Lambda$632/2136614370.apply(Unknown Source)
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.parse(Decoder.java:18)
at com.mojang.serialization.codecs.BaseMapCodec.lambda$decode$2(BaseMapCodec.java:31)
at com.mojang.serialization.codecs.BaseMapCodec$$Lambda$3836/1071236571.apply(Unknown Source)
at java.util.stream.ReduceOps$1ReducingSink.accept(ReduceOps.java:80)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1540)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:512)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.reduce(ReferencePipeline.java:484)
at com.mojang.serialization.codecs.BaseMapCodec.decode(BaseMapCodec.java:27)
at com.mojang.serialization.codecs.UnboundedMapCodec.lambda$decode$0(UnboundedMapCodec.java:38)
at com.mojang.serialization.codecs.UnboundedMapCodec$$Lambda$3834/849241856.apply(Unknown Source)
at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
at com.mojang.serialization.DataResult$$Lambda$632/2136614370.apply(Unknown Source)
at com.mojang.datafixers.util.Either$Left.map(Either.java:38)
at com.mojang.serialization.DataResult.flatMap(DataResult.java:136)
at com.mojang.serialization.codecs.UnboundedMapCodec.decode(UnboundedMapCodec.java:38)
at com.mojang.serialization.Decoder$2.decode(Decoder.java:63)
at com.mojang.serialization.Codec$2.decode(Codec.java:71)
at xz.decode(SourceFile:34)
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.MapDecoder$$Lambda$2993/543433178.apply(Unknown Source)
at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
at com.mojang.serialization.DataResult$$Lambda$632/2136614370.apply(Unknown Source)
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.decode(Decoder.java:22)
at com.mojang.serialization.Decoder.parse(Decoder.java:26)
at dar.a(SourceFile:115)
at dar.a(SourceFile:206)
at dar$$Lambda$3828/715497518.apply(Unknown Source)
at dar.a(SourceFile:169)
at dar.a(SourceFile:57)
at dar$a.a(SourceFile:323)
at dmk.a(SourceFile:1683)
at dmk$$Lambda$3144/1074078310.apply(Unknown Source)
at dmk.a(SourceFile:1906)
at dmk.a(SourceFile:1753)
at dmk.a(SourceFile:1697)
at duq$a.e(SourceFile:411)
at duq$a.a(SourceFile:321)
at duq$a.a(SourceFile:258)
at dnr.a(SourceFile:331)
at dor.a(SourceFile:27)
at dml.b(SourceFile:92)
at dml$$Lambda$2888/1388124035.run(Unknown Source)
at drd.a(SourceFile:431)
at dml.a(SourceFile:92)
at dml.c(SourceFile:162)
at dml$$Lambda$2887/66554485.run(Unknown Source)
at aqp.execute(SourceFile:94)
at dml.b(SourceFile:162)
at dml$$Lambda$2238/1027992087.invoke(Unknown Source)
at org.lwjgl.glfw.GLFWMouseButtonCallbackI.callback(GLFWMouseButtonCallbackI.java:36)
at org.lwjgl.system.JNI.invokeV(Native Method)
at org.lwjgl.glfw.GLFW.glfwWaitEventsTimeout(GLFW.java:3174)
at com.mojang.blaze3d.systems.RenderSystem.limitDisplayFPS(SourceFile:127)
at dmk.e(SourceFile:1043)
at dmk.e(SourceFile:653)
at net.minecraft.client.main.Main.main(SourceFile:215)How to Reproduce
I am not sure about the exact conditions. One example seems to be when a minecraft:random_selector is nested into a minecraft:decorated feature.
For testing I attached a datapack with a minimal custom biome that still reproduces this bug.
click "create new world"
In the world creation screen, click "Data Packs"
Drag
onto the screen that you just opened opened.
Enable the pack by clicking the arrow, moving it to the "Selected" column
Go back to the world creation screen
→ ❌ The game freezes on "Validating selected data packs", and the exception posted above appears in the log.
Analyses
Responsible is the buggy:crash_trees feature which is defined as follows:
{
"name": "minecraft:decorated",
"config": {
"decorator": {
"name": "minecraft:decorated",
"config": {
"outer": {
"name": "minecraft:square",
"config": {}
},
"inner": {
"name": "minecraft:heightmap",
"config": {}
}
}
},
"feature": {
"name": "minecraft:random_selector",
"config": {
"default": "minecraft:oak",
"features": [
{
"feature": "minecraft:fancy_oak",
"chance": 0.1
}
]
}
}
}
}{
"name": "minecraft:decorated",
"config": {
"decorator": {
"name": "minecraft:decorated",
"config": {
"outer": {
"name": "minecraft:square",
"config": {}
},
"inner": {
"name": "minecraft:heightmap",
"config": {}
}
}
},
"feature": {
"name": "minecraft:random_selector",
"config": {
"default": "minecraft:oak",
"features": [
{
"feature": "minecraft:fancy_oak",
"chance": 0.1
}
]
}
}
}
}If the decorator is ommited, the random_selector feature works as expected:
{
"name": "minecraft:random_selector",
"config": {
"default": "minecraft:oak",
"features": [
{
"feature": "minecraft:fancy_oak",
"chance": 0.1
}
]
}
}{
"name": "minecraft:random_selector",
"config": {
"default": "minecraft:oak",
"features": [
{
"feature": "minecraft:fancy_oak",
"chance": 0.1
}
]
}
}The outer decorated feature works as expected too, when using a different inner feature:
{
"name": "minecraft:decorated",
"config": {
"decorator": {
"name": "minecraft:decorated",
"config": {
"outer": {
"name": "minecraft:square",
"config": {}
},
"inner": {
"name": "minecraft:heightmap",
"config": {}
}
}
},
"feature": "minecraft:oak"
}
}{
"name": "minecraft:decorated",
"config": {
"decorator": {
"name": "minecraft:decorated",
"config": {
"outer": {
"name": "minecraft:square",
"config": {}
},
"inner": {
"name": "minecraft:heightmap",
"config": {}
}
}
},
"feature": "minecraft:oak"
}
}The combination of the two, however, does not work for some reason.
Linked issues
is duplicated by 3
Attachments
Comments 3
After a bit more investigating, I found this mostly seems to happen when using unnamed features. It looks like those are all stored at the same location in the BiMap causing this crash. This also appears to happen when any incorrect data is entered as then a default one is used (maybe no_op) also causing the same one to be present multiple times.
Using a debugger I was able to verify the duplicate object is a
ConfiguredFeature(yarn mapping,"clh") for the"no_op"feature, stored in the"kg". This is used as a default value. I have not discovered why theOpsreturns a successfulDataResultinstead of an error.