I was making new dimensions with data packs. The exact reproduction steps are unknown. Every time I rejoin the world, it crashes.
This remains even after removing all data packs. I find it worrying that without the dimension definition in the data pack (since it has been removed), I don't got teleported to the overworld.
Inspecting the world save shows that the biomes have been set to -1.
Attempting to remove the region folder causes it to be regenerated next time joining and crashes.
I managed to rejoin the world successfully by changing the Dimension NBT field of the player with an external tool to "minecraft:overworld".
Even though there are no data packs loaded now, the custom biomes still show. I suspect this is caused by the dimensions still being loaded while the biomes aren't loaded. This can be seen in the second screenshot.
World save: https://drive.google.com/file/d/1d01VIYzWjbHTqmnMcj9RgY7XCvKD8CLT/view?usp=sharing
1.16.2-pre2: [^crash-2020-08-06_14.58.55-server.txt]
Description: Ticking player
java.lang.IllegalStateException: Unregistered biome
at bw.b(SourceFile:88)
at bw$$Lambda$4691/255883376.get(Unknown Source)
at java.util.Optional.orElseThrow(Optional.java:290)
at bw.a(SourceFile:88)
at bw.a(SourceFile:68)
at bx$a.a(SourceFile:55)
at bx.a(SourceFile:31)
at bx$$Lambda$4689/641940096.test(Unknown Source)
at ck.a(SourceFile:62)
at bx.a(SourceFile:31)
at aah.v_(SourceFile:484)
at aay.b(SourceFile:207)
at nd.a(SourceFile:234)
at aax.c(SourceFile:173)
at net.minecraft.server.MinecraftServer.b(SourceFile:881)
at net.minecraft.server.MinecraftServer.a(SourceFile:810)
at emy.a(SourceFile:92)
at net.minecraft.server.MinecraftServer.w(SourceFile:669)
at net.minecraft.server.MinecraftServer.a(SourceFile:254)
at net.minecraft.server.MinecraftServer$$Lambda$4136/571704818.run(Unknown Source)
at java.lang.Thread.run(Thread.java:745)
It's likely that it pre3, the game no longer crashes but freezes when trying to create a custom world like this - see MC-197197.