PaperMC / PaperMC/Paper

Paper refuses to start after deleting `world_gen_settings.dat` file

Open
#14,066 2 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

status: accepted version: 26.2
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'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, 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.