Skip to content

Paper refuses to start after deleting world_gen_settings.dat file #14066

Description

@Strokkur424

Note

This only occurs with the overworld's world_gen_settings.dat file. Other dimensions, to my knowledge, are uneffected.

Note

This issue report, in essence, asks that if the world_gen_settings.dat does not exist completely, it should try to regenerate it, as it is very probably user-induced. It is not a goal to regenerate malformed or otherwise invalid world_gen_settings.dat files, as that might cause corruption.

Expected behavior

The server starts normally and re-generated the missing world_gen_settings.dat file, filling it with default values.

Observed/Actual behavior

The following stack trace (+ log) is printed, after which the server startup process does not continue operation and has to be manually shut down.

Server Log
[21:24:42 INFO]: [bootstrap] Running Java 25 (Java HotSpot(TM) 64-Bit Server VM 25.0.3+9-LTS-jvmci-b01; Oracle Corporation Oracle GraalVM 25.0.3+9.1) on Linux 7.0.12-arch1-1 (amd64)
[21:24:42 INFO]: [bootstrap] Loading Paper 26.2-DEV (2026-07-14T19:24:42Z) for Minecraft 26.2
[21:24:43 INFO]: [PluginInitializerManager] Initializing plugins...
[21:24:44 INFO]: [PluginInitializerManager] Initialized 2 plugins
[21:24:44 INFO]: [PluginInitializerManager] Paper plugins (1):
 - Paper-Test-Plugin (1.0.0-SNAPSHOT)
[21:24:44 INFO]: [PluginInitializerManager] Bukkit plugins (1):
 - Debuggery (1.5.1)
WARNING: A restricted method in java.lang.System has been called
WARNING: java.lang.System::load has been called by org.jline.nativ.JLineNativeLoader in an unnamed module (file:/home/strokk/.gradle/caches/modules-2/files-2.1/org.jline/jline-native/3.27.1/d0b198908023385a089379a1c854aadc7a7dd99b/jline-native-3.27.1.jar)
WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module
WARNING: Restricted methods will be blocked in a future release unless native access is enabled

2026-07-14T19:24:42.592606766Z main WARN Advanced terminal features are not available in this environment
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/home/strokk/.gradle/caches/modules-2/files-2.1/org.joml/joml/1.10.8/fc0a71dad90a2cf41d82a76156a0e700af8e4f8d/joml-1.10.8.jar)
WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release
[21:24:46 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]
[21:24:46 WARN]: [WorldFolderMigration] ===================== ! ALERT ! =====================
[21:24:46 WARN]: [WorldFolderMigration] World storage migration is required during startup.
[21:24:46 WARN]: [WorldFolderMigration] If you do not have a backup: interrupt the server now. Use Ctrl+C, your panel kill function, etc.
[21:24:46 WARN]: [WorldFolderMigration] =====================================================
[21:24:46 WARN]: [WorldFolderMigration] Continuing in 30 seconds...
[21:24:46 WARN]: [WorldFolderMigration] Migration delay disabled by system property.
[21:24:46 INFO]: [WorldFolderMigration] Continuing with startup world migration.
[21:24:46 INFO]: [VanillaWorldMigration] Starting Vanilla import for world 'world' (minecraft:overworld)
[21:24:46 INFO]: [VanillaWorldMigration] Completed Vanilla import for world 'world' (minecraft:overworld)
[21:24:46 ERROR]: Unable to read or access the world gen settings file! Falling back to the default settings with a random world seed. ./world/dimensions/minecraft/overworld/data/minecraft/world_gen_settings.dat
[21:24:46 WARN]: Failed to load datapacks, can't proceed with server load. You can either fix your datapacks or reset to vanilla with --safeMode
java.util.concurrent.ExecutionException: java.lang.IllegalStateException: Overworld settings missing
	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.server.Main.main(Main.java:287) ~[main/:?]
	at io.papermc.paper.PaperBootstrap.boot(PaperBootstrap.java:21) ~[main/:?]
	at org.bukkit.craftbukkit.Main.main(Main.java:204) ~[main/:?]
Caused by: java.lang.IllegalStateException: Overworld settings missing
	at net.minecraft.world.level.levelgen.WorldDimensions.<init>(WorldDimensions.java:47) ~[main/:?]
	at net.minecraft.world.level.levelgen.WorldDimensions.<init>(WorldDimensions.java:52) ~[main/:?]
	at net.minecraft.world.level.storage.LevelStorageSource.lambda$getLevelDataAndDimensions$0(LevelStorageSource.java:163) ~[main/:?]
	at com.mojang.serialization.DataResult$Error.mapOrElse(DataResult.java:309) ~[datafixerupper-10.0.21.jar:?]
	at net.minecraft.world.level.storage.LevelStorageSource.getLevelDataAndDimensions(LevelStorageSource.java:156) ~[main/:?]
	at net.minecraft.server.Main.lambda$main$1(Main.java:271) ~[main/:?]
	at net.minecraft.server.WorldLoader.lambda$load$2(WorldLoader.java:56) ~[main/:?]
	at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1171) ~[?:?]
	at java.base/java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:504) ~[?:?]
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:511) ~[?:?]
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1450) ~[?:?]
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:2019) ~[?:?]
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:187) ~[?:?]

Steps/models to reproduce

  1. Start a Paper server at least once before in order for the /world folder and its subfolders to generate.

  2. Stop the server.

  3. Delete this file: /world/dimensions/minecraft/overworld/data/minecraft/world_gen_settings.dat, or delete the whole /world/dimensions folder, either leads to this.

  4. Start the server.

  5. Exception!

Plugin and Datapack List

Plugins/datapacks do not affect this, it also happens on completely fresh and empty servers.

plugins
[21:29:46 INFO]: ℹ Server Plugins (2):
[21:29:46 INFO]: Paper Plugins (1):
[21:29:46 INFO]:  - Paper-Test-Plugin
[21:29:46 INFO]: Bukkit Plugins (1):
[21:29:46 INFO]:  - Debuggery

datapack list
[21:30:11 INFO]: There are 3 data pack(s) enabled: [vanilla (built-in)], [file/bukkit (world)], [paper (built-in)]
[21:30:11 INFO]: There are no more data packs available

Paper version

I am testing this on the Paper project with runServer, however my setup is currently on the commit for Minecraft 26.2, build #60 (BETA).

version
[21:30:21 INFO]: Checking version, please wait...
[21:30:21 INFO]: This server is running Paper version 26.2-DEV (2026-07-14T19:29:31Z) (Implementing API version 26.2.local-SNAPSHOT)
You are running a development version without access to version information
Previous version: 26.1.2-DEV (MC: 26.1.2)

Other

The reason why this is problematic is because of a user deleting the /world/dimensions/minecraft/overworld folder, in the hopes of generating a new overworld dimension. I think this issue is less problematic simply because of the possibility of that one file being deleted, but because it blocks deletion of the entire dimension under the same exception.

In the Vanilla Minecraft server, as distributed by Mojang, deleting the overworld dimension does not yield any issues.

The reason I am opening an issue for this first is to allow for discussion regarding how feasible a fix would be and what it would look like, before a potentially malformed patch is submitted for review.

Metadata

Metadata

Assignees

No one assigned

    Type

    Fields

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions