I encountered this with an item_modifier registry entry.
Simply create a datapack, with the correct pack format for the snapshot, and include an empty json file under
data/<some namespace>/item_modifier/test.json
The game will refuse to load the world, specifying that there is an error with a datapack and the console’s last error will be a StackOverflowError like so
[23:19:57] [Render thread/WARN]: Failed to load level data or datapacks, can't proceed with server load
java.util.concurrent.ExecutionException: java.lang.StackOverflowError
at java.base/java.util.concurrent.CompletableFuture.wrapInExecutionException(CompletableFuture.java:345)
at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:440)
at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2094)
at net.minecraft.client.gui.screens.worldselection.WorldOpenFlows.loadWorldDataBlocking(WorldOpenFlows.java:212)
at net.minecraft.client.gui.screens.worldselection.WorldOpenFlows.loadWorldStem(WorldOpenFlows.java:154)
at net.minecraft.client.gui.screens.worldselection.WorldOpenFlows.openWorldLoadLevelStem(WorldOpenFlows.java:424)
at net.minecraft.client.gui.screens.worldselection.WorldOpenFlows.lambda$upgradeAndOpenWorld$2(WorldOpenFlows.java:379)
at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:173)
at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:23)
at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:147)
at net.minecraft.util.thread.BlockableEventLoop.runAllTasks(BlockableEventLoop.java:127)
at net.minecraft.client.Minecraft.runTick(Minecraft.java:1227)
at net.minecraft.client.Minecraft.run(Minecraft.java:955)
at net.minecraft.client.main.Main.main(Main.java:292)
at org.prismlauncher.launcher.impl.StandardLauncher.launch(StandardLauncher.java:115)
at org.prismlauncher.EntryPoint.listen(EntryPoint.java:129)
at org.prismlauncher.EntryPoint.main(EntryPoint.java:70)
Caused by: java.lang.StackOverflowError
at com.mojang.serialization.Codec$2.decode(Codec.java:74)
at com.mojang.serialization.Decoder.parse(Decoder.java:18)
at com.mojang.serialization.codecs.FieldDecoder.decode(FieldDecoder.java:29)
at com.mojang.serialization.MapCodec$2.decode(MapCodec.java:78)
at com.mojang.serialization.codecs.KeyDispatchCodec.decode(KeyDispatchCodec.java:37)
at com.mojang.serialization.MapDecoder.lambda$compressedDecode$1(MapDecoder.java:52)
at com.mojang.serialization.DataResult$Success.flatMap(DataResult.java:201)
at com.mojang.serialization.MapDecoder.compressedDecode(MapDecoder.java:52)
at com.mojang.serialization.MapCodec$MapCodecCodec.decode(MapCodec.java:159)
at com.mojang.serialization.codecs.EitherCodec.decode(EitherCodec.java:14)
at com.mojang.serialization.Decoder$2.decode(Decoder.java:63)
at com.mojang.serialization.Codec$2.decode(Codec.java:74)
at com.mojang.serialization.Codec$RecursiveCodec.decode(Codec.java:219)
<cut off but repeating>
Duplicate of MC-310096 ?