BetterEnd

BetterEnd

27M Downloads

[Bug] BetterEnd fails hard when generating End Cave Biome

kvndl opened this issue · 6 comments

commented

What happened?

When in The End, most of everything loads in just fine - in fact everything was working perfect. Until just recently the entire server fails hard when loading anything new in The End. Assuming it entails the EndCaveBiome based on the logs: Crash Report

Error executing task on Chunk source main thread executor for minecraft:the_end
net.minecraft.class_148: Feature placement
...
Caused by: java.lang.ClassCastException: class org.betterx.bclib.api.v2.levelgen.biomes.BCLBiome cannot be cast to class org.betterx.betterend.world.biome.cave.EndCaveBiome (org.betterx.bclib.api.v2.levelgen.biomes.BCLBiome and org.betterx.betterend.world.biome.cave.EndCaveBiome are in unnamed module of loader net.fabricmc.loader.impl.launch.knot.KnotClassLoader @7f9a81e8)

Once the server restarts, it will allow a player to login and spawn. Since my personal player is in The End, it immediately crashes again when it goes to load in the "bad" chunks.

Digging around some other threads, it looks like excluding the failing biome (EndCaveBiome) from BCLib's biomes.json might do the trick, but not certain what to put where. I've also gone through the liberty of downgrading BetterEnd to a previous version to no avail. Also attempted was loading in our level.dat file in NBTExplorer but everything looks fine with the information I am aware of about how all the BetterX mods are wired together and function.

This bit tells me otherwise - possibly some corruption with the tags?

[01:43:58] [main/INFO]: [bclib] Found Data from BetterNether, using for migration.
[01:43:58] [main/ERROR]: [worlds_together] Tried to read from global registry!
[01:43:58] [main/ERROR]: [worlds_together] No valid registry found!
[01:43:58] [main/ERROR]: [bclib] Failed to set world to BiomeSource Version ResourceKey[minecraft:worldgen/world_preset / bclib:normal]
[01:43:59] [main/INFO]: [STDOUT]: Dimensions:{"minecraft:overworld":{generator:{biome_source:{preset:"minecraft:overworld",type:"minecraft:multi_noise"},settings:"minecraft:overworld",type:"minecraft:noise"},type:"minecraft:overworld"},"minecraft:the_end":{generator:{biome_source:{config:{barrens_biomes_size:256,center_biomes_size:256,generator_version:"vanilla",inner_void_radius_squared:1048576,land_biomes_size:256,map_type:"hex",void_biomes_size:256,with_void_biomes:1b},seed:167826389359076639L,type:"bclib:end_biome_source"},settings:"minecraft:end",type:"minecraft:noise"},type:"minecraft:the_end"},"minecraft:the_nether":{generator:{biome_source:{config:{amplified:0b,biome_size:256,biome_size_vertical:86,map_type:"hex",use_vertical_biomes:1b},seed:167826389359076639L,type:"bclib:nether_biome_source"},settings:"minecraft:nether",type:"minecraft:noise"},type:"minecraft:the_nether"}}

The only other mod that may be interfering would be Lithium, but the same result has occurred with it being removed. Any help on this would be much appreciated. I'd be happy to supply any additional information about this issue :)

Edit: Our level.dat as shown in NBTExplorer

image

BetterEnd

4.0.8

BCLib

3.0.11

Fabric API

0.86.0+1.20.1

Fabric Loader

0.14.21

Minecraft

1.20.1

Relevant log output

[01:57:14] [Server thread/ERROR]: Error executing task on Chunk source main thread executor for minecraft:the_end
net.minecraft.class_148: Feature placement
	at net.minecraft.class_3898.method_39934(class_3898.java:699) ~[server-intermediary.jar:?]
	at net.minecraft.class_1255.method_18859(class_1255.java:156) ~[server-intermediary.jar:?]
	at net.minecraft.class_3215$class_4212.method_18859(class_3215.java:564) ~[server-intermediary.jar:?]
	at net.minecraft.class_1255.method_16075(class_1255.java:130) ~[server-intermediary.jar:?]
	at net.minecraft.class_3215$class_4212.method_16075(class_3215.java:573) ~[server-intermediary.jar:?]
	at net.minecraft.class_3215.method_19492(class_3215.java:282) ~[server-intermediary.jar:?]
	at net.minecraft.server.MinecraftServer.method_20415(MinecraftServer.java:770) ~[server-intermediary.jar:?]
	at net.minecraft.server.MinecraftServer.method_16075(MinecraftServer.java:758) ~[server-intermediary.jar:?]
	at net.minecraft.class_1255.method_18857(class_1255.java:139) ~[server-intermediary.jar:?]
	at net.minecraft.server.MinecraftServer.method_16208(MinecraftServer.java:743) ~[server-intermediary.jar:?]
	at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:675) ~[server-intermediary.jar:?]
	at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:265) ~[server-intermediary.jar:?]
	at java.lang.Thread.run(Unknown Source) ~[?:?]
Caused by: java.lang.ClassCastException: class org.betterx.bclib.api.v2.levelgen.biomes.BCLBiome cannot be cast to class org.betterx.betterend.world.biome.cave.EndCaveBiome (org.betterx.bclib.api.v2.levelgen.biomes.BCLBiome and org.betterx.betterend.world.biome.cave.EndCaveBiome are in unnamed module of loader net.fabricmc.loader.impl.launch.knot.KnotClassLoader @7f9a81e8)
	at org.betterx.betterend.world.features.terrain.caves.TunelCaveFeature.lambda$place$3(TunelCaveFeature.java:180) ~[better-end-4.0.8.jar:?]
	at java.util.HashMap.forEach(Unknown Source) ~[?:?]
	at org.betterx.betterend.world.features.terrain.caves.TunelCaveFeature.method_13151(TunelCaveFeature.java:178) ~[better-end-4.0.8.jar:?]
	at net.minecraft.class_3031.method_40163(class_3031.java:166) ~[server-intermediary.jar:?]
	at net.minecraft.class_2975.method_12862(class_2975.java:28) ~[server-intermediary.jar:?]
	at net.minecraft.class_6796.method_39646(class_6796.java:54) ~[server-intermediary.jar:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source) ~[?:?]
	at java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Unknown Source) ~[?:?]
	at java.util.stream.ReferencePipeline$Head.forEach(Unknown Source) ~[?:?]
	at java.util.stream.ReferencePipeline$7$1.accept(Unknown Source) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source) ~[?:?]
	at java.util.stream.IntPipeline$1$1.accept(Unknown Source) ~[?:?]
	at java.util.stream.Streams$RangeIntSpliterator.forEachRemaining(Unknown Source) ~[?:?]
	at java.util.Spliterator$OfInt.forEachRemaining(Unknown Source) ~[?:?]
	at java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[?:?]
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source) ~[?:?]
	at java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[?:?]
	at java.util.stream.ReferencePipeline.forEach(Unknown Source) ~[?:?]
	at java.util.stream.ReferencePipeline$7$1.accept(Unknown Source) ~[?:?]
	at java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Unknown Source) ~[?:?]
	at java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[?:?]
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source) ~[?:?]
	at java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[?:?]
	at java.util.stream.ReferencePipeline.forEach(Unknown Source) ~[?:?]
	at net.minecraft.class_6796.method_39648(class_6796.java:53) ~[server-intermediary.jar:?]
	at net.minecraft.class_6796.method_39650(class_6796.java:42) ~[server-intermediary.jar:?]
	at net.minecraft.class_2794.method_12102(class_2794.java:357) ~[server-intermediary.jar:?]
	at net.minecraft.class_2806.method_51375(class_2806.java:108) ~[server-intermediary.jar:?]
	at net.minecraft.class_2806$class_3768.doWork(class_2806.java:309) ~[server-intermediary.jar:?]
	at net.minecraft.class_2806.method_12154(class_2806.java:252) ~[server-intermediary.jar:?]
	at net.minecraft.class_3898.method_17225(class_3898.java:684) ~[server-intermediary.jar:?]
	at com.mojang.datafixers.util.Either$Left.map(Either.java:38) ~[datafixerupper-6.0.8.jar:?]
	at net.minecraft.class_3898.method_17224(class_3898.java:673) ~[server-intermediary.jar:?]
	at java.util.concurrent.CompletableFuture$UniCompose.tryFire(Unknown Source) ~[?:?]
	at java.util.concurrent.CompletableFuture$Completion.run(Unknown Source) ~[?:?]
	at net.minecraft.class_3900.method_17634(class_3900.java:62) ~[server-intermediary.jar:?]
	at net.minecraft.class_3846.method_16907(class_3846.java:91) ~[server-intermediary.jar:?]
	at net.minecraft.class_3846.method_16900(class_3846.java:146) ~[server-intermediary.jar:?]
	at net.minecraft.class_3846.run(class_3846.java:102) ~[server-intermediary.jar:?]
	at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(Unknown Source) ~[?:?]
	at java.util.concurrent.ForkJoinTask.doExec(Unknown Source) ~[?:?]
	at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source) ~[?:?]
	at java.util.concurrent.ForkJoinPool.scan(Unknown Source) ~[?:?]
	at java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) ~[?:?]
	at java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) ~[?:?]
[01:57:14] [Server thread/ERROR]: Encountered an unexpected exception
net.minecraft.class_148: Feature placement
	at net.minecraft.server.MinecraftServer.method_3813(MinecraftServer.java:901) ~[server-intermediary.jar:?]
	at net.minecraft.class_3176.method_3813(class_3176.java:283) ~[server-intermediary.jar:?]
	at net.minecraft.server.MinecraftServer.method_3748(MinecraftServer.java:824) ~[server-intermediary.jar:?]
	at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:671) ~[server-intermediary.jar:?]
	at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:265) ~[server-intermediary.jar:?]
	at java.lang.Thread.run(Unknown Source) ~[?:?]
Caused by: java.lang.ClassCastException: class org.betterx.bclib.api.v2.levelgen.biomes.BCLBiome cannot be cast to class org.betterx.betterend.world.biome.cave.EndCaveBiome (org.betterx.bclib.api.v2.levelgen.biomes.BCLBiome and org.betterx.betterend.world.biome.cave.EndCaveBiome are in unnamed module of loader net.fabricmc.loader.impl.launch.knot.KnotClassLoader @7f9a81e8)
	at org.betterx.betterend.world.features.terrain.caves.TunelCaveFeature.lambda$place$3(TunelCaveFeature.java:180) ~[better-end-4.0.8.jar:?]
	at java.util.HashMap.forEach(Unknown Source) ~[?:?]
	at org.betterx.betterend.world.features.terrain.caves.TunelCaveFeature.method_13151(TunelCaveFeature.java:178) ~[better-end-4.0.8.jar:?]
	at net.minecraft.class_3031.method_40163(class_3031.java:166) ~[server-intermediary.jar:?]
	at net.minecraft.class_2975.method_12862(class_2975.java:28) ~[server-intermediary.jar:?]
	at net.minecraft.class_6796.method_39646(class_6796.java:54) ~[server-intermediary.jar:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source) ~[?:?]
	at java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Unknown Source) ~[?:?]
	at java.util.stream.ReferencePipeline$Head.forEach(Unknown Source) ~[?:?]
	at java.util.stream.ReferencePipeline$7$1.accept(Unknown Source) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source) ~[?:?]
	at java.util.stream.IntPipeline$1$1.accept(Unknown Source) ~[?:?]
	at java.util.stream.Streams$RangeIntSpliterator.forEachRemaining(Unknown Source) ~[?:?]
	at java.util.Spliterator$OfInt.forEachRemaining(Unknown Source) ~[?:?]
	at java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[?:?]
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source) ~[?:?]
	at java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[?:?]
	at java.util.stream.ReferencePipeline.forEach(Unknown Source) ~[?:?]
	at java.util.stream.ReferencePipeline$7$1.accept(Unknown Source) ~[?:?]
	at java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Unknown Source) ~[?:?]
	at java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[?:?]
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source) ~[?:?]
	at java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[?:?]
	at java.util.stream.ReferencePipeline.forEach(Unknown Source) ~[?:?]
	at net.minecraft.class_6796.method_39648(class_6796.java:53) ~[server-intermediary.jar:?]
	at net.minecraft.class_6796.method_39650(class_6796.java:42) ~[server-intermediary.jar:?]
	at net.minecraft.class_2794.method_12102(class_2794.java:357) ~[server-intermediary.jar:?]
	at net.minecraft.class_2806.method_51375(class_2806.java:108) ~[server-intermediary.jar:?]
	at net.minecraft.class_2806$class_3768.doWork(class_2806.java:309) ~[server-intermediary.jar:?]
	at net.minecraft.class_2806.method_12154(class_2806.java:252) ~[server-intermediary.jar:?]
	at net.minecraft.class_3898.method_17225(class_3898.java:684) ~[server-intermediary.jar:?]
	at com.mojang.datafixers.util.Either$Left.map(Either.java:38) ~[datafixerupper-6.0.8.jar:?]
	at net.minecraft.class_3898.method_17224(class_3898.java:673) ~[server-intermediary.jar:?]
	at java.util.concurrent.CompletableFuture$UniCompose.tryFire(Unknown Source) ~[?:?]
	at java.util.concurrent.CompletableFuture$Completion.run(Unknown Source) ~[?:?]
	at net.minecraft.class_3900.method_17634(class_3900.java:62) ~[server-intermediary.jar:?]
	at net.minecraft.class_3846.method_16907(class_3846.java:91) ~[server-intermediary.jar:?]
	at net.minecraft.class_3846.method_16900(class_3846.java:146) ~[server-intermediary.jar:?]
	at net.minecraft.class_3846.run(class_3846.java:102) ~[server-intermediary.jar:?]
	at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(Unknown Source) ~[?:?]
	at java.util.concurrent.ForkJoinTask.doExec(Unknown Source) ~[?:?]
	at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source) ~[?:?]
	at java.util.concurrent.ForkJoinPool.scan(Unknown Source) ~[?:?]
	at java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) ~[?:?]
	at java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) ~[?:?]
[01:57:14] [Server thread/ERROR]: This crash report has been saved to: /data/./crash-reports/crash-2023-07-21_01.57.14-server.txt
[01:57:14] [Server thread/INFO]: Stopping server
[01:57:14] [Server thread/INFO]: Saving players
[01:57:14] [Server thread/INFO]: KevinNoodle lost connection: Server closed
[01:57:14] [Server thread/INFO]: KevinNoodle left the game
[01:57:14] [Server thread/INFO]: Saving worlds
[01:57:14] [Server thread/ERROR]: Exception stopping the server
java.util.concurrent.CompletionException: net.minecraft.class_148: Feature placement
	at java.util.concurrent.CompletableFuture.encodeThrowable(Unknown Source) ~[?:?]
	at java.util.concurrent.CompletableFuture.completeThrowable(Unknown Source) ~[?:?]
	at java.util.concurrent.CompletableFuture$UniCompose.tryFire(Unknown Source) ~[?:?]
	at java.util.concurrent.CompletableFuture$Completion.run(Unknown Source) ~[?:?]
	at net.minecraft.class_3900.method_17634(class_3900.java:62) ~[server-intermediary.jar:?]
	at net.minecraft.class_3846.method_16907(class_3846.java:91) ~[server-intermediary.jar:?]
	at net.minecraft.class_3846.method_16900(class_3846.java:146) ~[server-intermediary.jar:?]
	at net.minecraft.class_3846.run(class_3846.java:102) ~[server-intermediary.jar:?]
	at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(Unknown Source) ~[?:?]
	at java.util.concurrent.ForkJoinTask.doExec(Unknown Source) ~[?:?]
	at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source) ~[?:?]
	at java.util.concurrent.ForkJoinPool.scan(Unknown Source) ~[?:?]
	at java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) ~[?:?]
	at java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) ~[?:?]
Caused by: net.minecraft.class_148: Feature placement
	at net.minecraft.class_3898.method_17225(class_3898.java:701) ~[server-intermediary.jar:?]
	at com.mojang.datafixers.util.Either$Left.map(Either.java:38) ~[datafixerupper-6.0.8.jar:?]
	at net.minecraft.class_3898.method_17224(class_3898.java:673) ~[server-intermediary.jar:?]
	... 12 more
Caused by: java.lang.ClassCastException: class org.betterx.bclib.api.v2.levelgen.biomes.BCLBiome cannot be cast to class org.betterx.betterend.world.biome.cave.EndCaveBiome (org.betterx.bclib.api.v2.levelgen.biomes.BCLBiome and org.betterx.betterend.world.biome.cave.EndCaveBiome are in unnamed module of loader net.fabricmc.loader.impl.launch.knot.KnotClassLoader @7f9a81e8)
	at org.betterx.betterend.world.features.terrain.caves.TunelCaveFeature.lambda$place$3(TunelCaveFeature.java:180) ~[better-end-4.0.8.jar:?]
	at java.util.HashMap.forEach(Unknown Source) ~[?:?]
	at org.betterx.betterend.world.features.terrain.caves.TunelCaveFeature.method_13151(TunelCaveFeature.java:178) ~[better-end-4.0.8.jar:?]
	at net.minecraft.class_3031.method_40163(class_3031.java:166) ~[server-intermediary.jar:?]
	at net.minecraft.class_2975.method_12862(class_2975.java:28) ~[server-intermediary.jar:?]
	at net.minecraft.class_6796.method_39646(class_6796.java:54) ~[server-intermediary.jar:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source) ~[?:?]
	at java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Unknown Source) ~[?:?]
	at java.util.stream.ReferencePipeline$Head.forEach(Unknown Source) ~[?:?]
	at java.util.stream.ReferencePipeline$7$1.accept(Unknown Source) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source) ~[?:?]
	at java.util.stream.IntPipeline$1$1.accept(Unknown Source) ~[?:?]
	at java.util.stream.Streams$RangeIntSpliterator.forEachRemaining(Unknown Source) ~[?:?]
	at java.util.Spliterator$OfInt.forEachRemaining(Unknown Source) ~[?:?]
	at java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[?:?]
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source) ~[?:?]
	at java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[?:?]
	at java.util.stream.ReferencePipeline.forEach(Unknown Source) ~[?:?]
	at java.util.stream.ReferencePipeline$7$1.accept(Unknown Source) ~[?:?]
	at java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Unknown Source) ~[?:?]
	at java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[?:?]
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source) ~[?:?]
	at java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[?:?]
	at java.util.stream.ReferencePipeline.forEach(Unknown Source) ~[?:?]
	at net.minecraft.class_6796.method_39648(class_6796.java:53) ~[server-intermediary.jar:?]
	at net.minecraft.class_6796.method_39650(class_6796.java:42) ~[server-intermediary.jar:?]
	at net.minecraft.class_2794.method_12102(class_2794.java:357) ~[server-intermediary.jar:?]
	at net.minecraft.class_2806.method_51375(class_2806.java:108) ~[server-intermediary.jar:?]
	at net.minecraft.class_2806$class_3768.doWork(class_2806.java:309) ~[server-intermediary.jar:?]
	at net.minecraft.class_2806.method_12154(class_2806.java:252) ~[server-intermediary.jar:?]
	at net.minecraft.class_3898.method_17225(class_3898.java:684) ~[server-intermediary.jar:?]
	at com.mojang.datafixers.util.Either$Left.map(Either.java:38) ~[datafixerupper-6.0.8.jar:?]
	at net.minecraft.class_3898.method_17224(class_3898.java:673) ~[server-intermediary.jar:?]
	... 12 more
[01:57:14] [Server thread/INFO]: Thread RCON Listener stopped

Other Mods

[01:43:37] [main/INFO]: Loading 76 mods:
	- alwaysawitherskull 3.0
	- balm-fabric 7.0.4
	- bclib 3.0.11
	   \-- wunderlib 1.1.5
	- betterend 4.0.8
	- betterleads 1.1.0+1.20.1
	   \-- spruceui 5.0.0+1.20
	- betternether 9.0.8
	- collective 6.65
	- comforts 6.3.3+1.20.1
	   |-- cardinal-components-base 5.2.1
	   |-- cardinal-components-entity 5.2.1
	   \-- spectrelib 0.13.12+1.20.1
	        |-- com_electronwill_night-config_core 3.6.5
	        \-- com_electronwill_night-config_toml 3.6.5
	- fabric-api 0.86.0+1.20.1
	   |-- fabric-api-base 0.4.30+7abfd51577
	   |-- fabric-api-lookup-api-v1 1.6.35+4d8536c977
	   |-- fabric-biome-api-v1 13.0.10+b3afc78b77
	   |-- fabric-block-api-v1 1.0.9+e022e5d177
	   |-- fabric-blockrenderlayer-v1 1.1.40+b3afc78b77
	   |-- fabric-client-tags-api-v1 1.1.1+97bb207577
	   |-- fabric-command-api-v1 1.2.33+f71b366f77
	   |-- fabric-command-api-v2 2.2.12+b3afc78b77
	   |-- fabric-commands-v0 0.2.50+df3654b377
	   |-- fabric-containers-v0 0.1.62+df3654b377
	   |-- fabric-content-registries-v0 4.0.9+b3afc78b77
	   |-- fabric-convention-tags-v1 1.5.4+a1a980da77
	   |-- fabric-crash-report-info-v1 0.2.18+aeb40ebe77
	   |-- fabric-data-generation-api-v1 12.2.0+6c31357e77
	   |-- fabric-dimensions-v1 2.1.52+b3afc78b77
	   |-- fabric-entity-events-v1 1.5.22+b3afc78b77
	   |-- fabric-events-interaction-v0 0.6.1+e91849a877
	   |-- fabric-events-lifecycle-v0 0.2.62+df3654b377
	   |-- fabric-game-rule-api-v1 1.0.38+b04edc7a77
	   |-- fabric-item-api-v1 2.1.27+b3afc78b77
	   |-- fabric-item-group-api-v1 4.0.9+132c48c177
	   |-- fabric-key-binding-api-v1 1.0.36+fb8d95da77
	   |-- fabric-keybindings-v0 0.2.34+df3654b377
	   |-- fabric-lifecycle-events-v1 2.2.21+b3afc78b77
	   |-- fabric-loot-api-v2 1.1.39+b3afc78b77
	   |-- fabric-loot-tables-v1 1.1.43+9e7660c677
	   |-- fabric-message-api-v1 5.1.7+3265161977
	   |-- fabric-mining-level-api-v1 2.1.49+b3afc78b77
	   |-- fabric-model-loading-api-v1 1.0.1+9386d8a777
	   |-- fabric-models-v0 0.4.0+9386d8a777
	   |-- fabric-networking-api-v1 1.3.9+b3afc78b77
	   |-- fabric-networking-v0 0.3.49+df3654b377
	   |-- fabric-object-builder-api-v1 11.1.1+6beca84877
	   |-- fabric-particles-v1 1.1.1+201a23a077
	   |-- fabric-recipe-api-v1 1.0.19+b3afc78b77
	   |-- fabric-registry-sync-v0 2.3.0+2e061fd477
	   |-- fabric-renderer-api-v1 3.1.1+9386d8a777
	   |-- fabric-renderer-indigo 1.4.1+9172968c77
	   |-- fabric-renderer-registries-v1 3.2.45+df3654b377
	   |-- fabric-rendering-data-attachment-v1 0.3.34+b3afc78b77
	   |-- fabric-rendering-fluids-v1 3.0.27+b3afc78b77
	   |-- fabric-rendering-v0 1.1.48+df3654b377
	   |-- fabric-rendering-v1 3.0.7+b3afc78b77
	   |-- fabric-resource-conditions-api-v1 2.3.5+ea08f9d877
	   |-- fabric-resource-loader-v0 0.11.9+132c48c177
	   |-- fabric-screen-api-v1 2.0.7+b3afc78b77
	   |-- fabric-screen-handler-api-v1 1.3.28+b3afc78b77
	   |-- fabric-sound-api-v1 1.0.12+b3afc78b77
	   |-- fabric-transfer-api-v1 3.3.0+cdf060b277
	   \-- fabric-transitive-access-wideners-v1 4.3.0+6c31357e77
	- fabricloader 0.14.21
	- gunpowder 1.0.2
	   \-- server_translations_api 2.0.0+1.20
	        \-- packet_tweaker 0.4.0+1.19.4
	- inventorysorter 1.9.0-1.20
	   \-- kyrptconfig 1.5.6-1.20
	- inventorytotem 3.0
	- java 17
	- lithium 0.11.2
	- minecraft 1.20.1
	- nametagtweaks 3.0
	- polymer-bundled 0.5.5+1.20.1
	   |-- polymer-autohost 0.5.5+1.20.1
	   |-- polymer-blocks 0.5.5+1.20.1
	   |-- polymer-common 0.5.5+1.20.1
	   |    \-- packet_tweaker 0.4.0+1.19.4
	   |-- polymer-core 0.5.5+1.20.1
	   |    |-- polymer-networking 0.5.5+1.20.1
	   |    |    \-- polymer-common 0.5.5+1.20.1
	   |    |         \-- packet_tweaker 0.4.0+1.19.4
	   |    \-- polymer-registry-sync-manipulator 0.5.5+1.20.1
	   |-- polymer-resource-pack 0.5.5+1.20.1
	   |    \-- polymer-common 0.5.5+1.20.1
	   |         \-- packet_tweaker 0.4.0+1.19.4
	   \-- polymer-virtual-entity 0.5.5+1.20.1
	        \-- polymer-common 0.5.5+1.20.1
	             \-- packet_tweaker 0.4.0+1.19.4
	- ultris_mr 5.6.9b
	- villagernames 5.2
	- waystones 14.0.1
	- youritemsaresafe 3.4
commented

Switch your fabric api to 0.85.0+1.20.1, the last 1.20.1 full release. I had the same problem, and when looking on the discord, I saw that a person using the newer fabric api developed the problem. So I tried this version, and it works.

commented

Switch your fabric api to 0.85.0+1.20.1

Seems to have done the trick for now - thanks for the suggestion

commented

Thanks for the report and the solution :)

I added some code for additional logging (and handling), that might help me to determine what exactly went wrong in those cases in the future.

commented

There are quite some breaking changes in 0.86 which need some more extensive work.
Unfortunatley I do not have the time to implement those changes before August (and I am not sure if they are related).

So for the Moment, the BetterX Mods will be flagged as incompatible with FAPI 0.86.

I also started to gather some info about other issues with 0.86 here: https://github.com/orgs/FabricMC/discussions/3214

commented

Workaround suggested by @HelpMehh doesn't work for me. I'm using FAPI 0.85 because of the incompatibility flag and the error occurred. Tested with FAPI 0.85 + BCLib 3.0.12 + BetterEnd 4.0.9 and with FAPI 0.85 + BCLib 3.0.11 + BetterEnd 4.0.8. Not sure why it's happening.

EDIT:
Here's the relevant part of the log. (also on mclogs)

[17:18:30] [Server thread/ERROR]: Error executing task on Chunk source main thread executor for minecraft:the_end
net.minecraft.class_148: Feature placement
	at net.minecraft.class_3898.method_39934(class_3898.java:699) ~[client-intermediary.jar:?]
	at net.minecraft.class_1255.method_18859(class_1255.java:156) ~[client-intermediary.jar:?]
	at net.minecraft.class_3215$class_4212.method_18859(class_3215.java:564) ~[client-intermediary.jar:?]
	at net.minecraft.class_1255.method_16075(class_1255.java:130) ~[client-intermediary.jar:?]
	at net.minecraft.class_3215$class_4212.method_16075(class_3215.java:573) ~[client-intermediary.jar:?]
	at net.minecraft.class_1255.method_18857(class_1255.java:139) ~[client-intermediary.jar:?]
	at net.minecraft.class_3215.method_12121(class_3215.java:140) ~[client-intermediary.jar:?]
	at net.minecraft.class_1937.method_8402(class_1937.java:204) ~[client-intermediary.jar:?]
	at net.minecraft.class_2881.method_12533(class_2881.java:389) ~[client-intermediary.jar:?]
	at net.minecraft.class_2881.method_12538(class_2881.java:231) ~[client-intermediary.jar:?]
	at net.minecraft.class_3218.method_18765(class_3218.java:350) ~[client-intermediary.jar:?]
	at net.minecraft.server.MinecraftServer.method_3813(MinecraftServer.java:897) ~[client-intermediary.jar:?]
	at net.minecraft.server.MinecraftServer.method_3748(MinecraftServer.java:824) ~[client-intermediary.jar:?]
	at net.minecraft.class_1132.method_3748(class_1132.java:105) ~[client-intermediary.jar:?]
	at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:671) ~[client-intermediary.jar:?]
	at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:265) ~[client-intermediary.jar:?]
	at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.lang.ClassCastException: class org.betterx.bclib.api.v2.levelgen.biomes.BCLBiome cannot be cast to class org.betterx.betterend.world.biome.cave.EndCaveBiome (org.betterx.bclib.api.v2.levelgen.biomes.BCLBiome and org.betterx.betterend.world.biome.cave.EndCaveBiome are in unnamed module of loader net.fabricmc.loader.impl.launch.knot.KnotClassLoader @3c0f93f1)
	at org.betterx.betterend.world.features.terrain.caves.EndCaveFeature.method_13151(EndCaveFeature.java:86) ~[better-end-4.0.8.jar:?]
	at net.minecraft.class_3031.method_40163(class_3031.java:166) ~[client-intermediary.jar:?]
	at net.minecraft.class_2975.method_12862(class_2975.java:28) ~[client-intermediary.jar:?]
	at net.minecraft.class_6796.method_39646(class_6796.java:54) ~[client-intermediary.jar:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:?]
	at java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:411) ~[?:?]
	at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) ~[?:?]
	at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276) ~[?:?]
	at java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:411) ~[?:?]
	at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) ~[?:?]
	at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276) ~[?:?]
	at java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:411) ~[?:?]
	at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) ~[?:?]
	at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276) ~[?:?]
	at java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:411) ~[?:?]
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:?]
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) ~[?:?]
	at net.minecraft.class_6796.method_39648(class_6796.java:53) ~[client-intermediary.jar:?]
	at net.minecraft.class_6796.method_39650(class_6796.java:42) ~[client-intermediary.jar:?]
	at net.minecraft.class_2794.method_12102(class_2794.java:357) ~[client-intermediary.jar:?]
	at net.minecraft.class_2806.method_51375(class_2806.java:108) ~[client-intermediary.jar:?]
	at net.minecraft.class_2806$class_3768.doWork(class_2806.java:309) ~[client-intermediary.jar:?]
	at net.minecraft.class_2806.method_12154(class_2806.java:252) ~[client-intermediary.jar:?]
	at net.minecraft.class_3898.method_17225(class_3898.java:684) ~[client-intermediary.jar:?]
	at com.mojang.datafixers.util.Either$Left.map(Either.java:38) ~[datafixerupper-6.0.8.jar:?]
	at net.minecraft.class_3898.method_17224(class_3898.java:673) ~[client-intermediary.jar:?]
	at java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1150) ~[?:?]
	at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?]
	at net.minecraft.class_3900.method_17634(class_3900.java:62) ~[client-intermediary.jar:?]
	at net.minecraft.class_3846.method_16907(class_3846.java:91) ~[client-intermediary.jar:?]
	at net.minecraft.class_3846.method_16900(class_3846.java:146) ~[client-intermediary.jar:?]
	at net.minecraft.class_3846.run(class_3846.java:102) ~[client-intermediary.jar:?]
	at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1395) ~[?:?]
	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) ~[?:?]

EDIT 2: I've been messing around with the mod and it seems that Minecraft crashes if I try and teleport into the End (with something like /execute in minecraft:the_end run tp yGlobalista 0 100 0) but it doesn't if I use the portal. However, depending on the seed, as soon as I enter a Gateway, it may crash if I generate a chunk with one of the problematic cave biomes. I managed to actually enter and generate a few chunks before a crash using the very first version of BetterEnd and BCLib for MC 1.20.1, generating a world then upgrading it to the latest version. It then crashed when I tried exploring. The same world, created with the latest version, would crash as soon as I traveled through the Gateway.

commented

This should work in the just released version (4.0.11). Please let me know of the error still persists.