Paper refuses to start after deleting `world_gen_settings.dat` file
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 12.7k
- Forks
- 3.5k
- Avg merge
- 3d 13h
- Merged PRs (30d)
- 11
Description
[!NOTE]
This only occurs with the overworld'sworld_gen_settings.datfile. Other dimensions, to my knowledge, are uneffected.
[!NOTE]
This issue report, in essence, asks that if theworld_gen_settings.datdoes 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 invalidworld_gen_settings.datfiles, 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
-
Start a Paper server at least once before in order for the
/worldfolder and its subfolders to generate. -
Stop the server.
-
Delete this file:
/world/dimensions/minecraft/overworld/data/minecraft/world_gen_settings.dat, or delete the whole/world/dimensionsfolder, either leads to this. -
Start the server.
-
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, as there the file is instead stored as a global file instead of per-dimension. Deleting the file at its old position also results in the issue.
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.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the failure by removing world/dimensions/minecraft/overworld/data/minecraft/world_gen_settings.dat, then trace the startup path through Main.java, WorldLoader.java, LevelStorageSource.java, and WorldDimensions.java. Compare the missing-file path with vanilla behavior and existing migration handling. Done means a missing overworld settings file or dimension folder no longer blocks startup, while malformed or invalid files are not silently regenerated.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- game-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100