Minecraft server crash fixes
One guide per error pattern. The first line of each tells you what to try; the rest tells you why. If you want to skip the reading and paste your crash-report.txt instead, the Crash Doctor does it automatically.
java.lang.UnsupportedClassVersionError
Fix the Minecraft server UnsupportedClassVersionError crash — the Java runtime is newer or older than the mod was compiled for. One-line fix below.
java.lang.NoSuchMethodError
Fix Minecraft NoSuchMethodError crashes — almost always a mod-version mismatch between two mods that disagree on an API method.
java.lang.OutOfMemoryError: Java heap space
Fix Minecraft server OutOfMemoryError crashes — the JVM ran out of allocated heap. Most modpacks need 8–16 GB; here's how to size correctly.
Mixin apply failed (MixinTransformerError)
Fix Minecraft Mixin apply failed crashes — one mod tried to inject into a class another mod or MC version changed. Usually update or disable the offending mod.
Sinytra Connector ERROR
Fix Sinytra Connector errors on Minecraft Forge servers — almost always a Fabric mod that doesn't translate cleanly. Disable or replace it.
No space left on device (Minecraft IOException)
Fix the Minecraft server 'No space left on device' crash — the container ran out of disk. Find what's eating space + how to recover.
Permission denied / AccessDeniedException
Fix Minecraft server 'Permission denied' crashes — the Java process can't write a file. Usually wrong file ownership after an upload or restore.
java.lang.StackOverflowError
Fix Minecraft StackOverflowError crashes — a method called itself infinitely until the JVM thread stack ran out. Almost always a mod bug.
Bad config file (TOML / JSON parse error)
Fix Minecraft mod config parse errors — a config/*.toml or *.json got corrupted, manually edited wrong, or out-of-spec after a mod update. Restore or regenerate.
Registry / world corruption (unregistered block or entity)
Fix Minecraft 'Encountered an unregistered' and 'ResourceLocation X not registered' crashes — the world references content from a mod that's no longer loaded.
Failed to save world / Failed to save chunk
Fix Minecraft 'Failed to save world' and 'Failed to save chunk' errors — Minecraft couldn't flush data to disk. Usually disk full, permissions, or corruption.
Watchdog tick timeout (single server tick took)
Fix Minecraft server watchdog crashes — a tick took longer than 60s and the server killed itself. Usually a heavy mod, not a real bug.
Missing mod dependency (mod requires X which is not present)
Fix Minecraft 'mod requires X which is not present' errors — the loader found a mod but its required companion mod isn't installed. Add it.
java.lang.NoClassDefFoundError
Fix Minecraft NoClassDefFoundError — a class that was available at compile time is missing at runtime. Almost always a missing or mismatched mod.
EADDRINUSE — Address already in use (port 25565)
Fix Minecraft 'Address already in use' — another process is already bound to port 25565. Kill the old process or change the port.
Ticking entity crash (java.lang.NullPointerException in entity tick)
Fix the Minecraft 'ticking entity' crash — a specific entity in your world is throwing an exception every tick. Find its UUID and remove it.
Chunk corruption (ChunkSerializationException / DFU migration failed)
Fix Minecraft chunk corruption errors — one or more region files are unreadable. Delete the corrupt region file or restore from backup.
License key was not accepted (FiveM / FXServer)
Fix the FiveM 'license key was not accepted' error — your sv_licenseKey in server.cfg is invalid, expired, or doesn't match the IP. Re-generate it at keymaster.fivem.net.
Resource dependency failed to start (FiveM)
Fix FiveM 'resource X has a dependency on Y which failed to start' — install the missing dependency and ensure it's started before the dependent resource.
oxmysql / mysql-async: Database connection failed (FiveM)
Fix FiveM oxmysql or mysql-async 'database connection failed' errors — wrong connection string, MySQL not running, or firewall blocking the connection.
OneSync not enabled / entity limit exceeded (FiveM)
Fix FiveM OneSync errors — add 'onesync on' (or 'onesync legacy') to server.cfg and ensure your license key tier supports it.
FXServer crash loop (server keeps restarting)
Fix a FiveM FXServer crash loop — the server restarts immediately after starting. Read the last log, find the crashing resource, disable it and restart.
Client-only mod installed on a Minecraft server
A client-side-only mod was added to the server (or a player's mods folder) — the server crashes on boot or kicks players for mismatched mods. How to tell which one.
CurseForge mod cannot be downloaded automatically (third-party distribution off)
A modpack install stalls or fails because one mod's author disabled third-party downloads. Why it happens and the legitimate way to finish the install.
Legacy Forge launchwrapper ClassCastException (URLClassLoader)
Legacy Forge on Minecraft 1.7–1.12 crashes on modern Java with a URLClassLoader ClassCastException. The fix is Java 8 — here's why and how.
Invalid mod file / 'is missing mods.toml'
'Invalid mod file' or 'is missing mods.toml' means a jar in mods/ is not a real mod — interrupted download or 0-byte file. Find and replace it.
Could not load 'plugins/…' (plugin failed to initialize)
A Bukkit/Paper plugin failed to load — wrong server version, missing dependency plugin, or a broken jar. Identify the named plugin and fix or remove it.
Duplicate mod found / mod id already present
Two jars claiming the same mod id — usually two versions of one mod — stop Forge or Fabric from loading. Keep exactly one copy of every mod.
world/session.lock already locked
session.lock means another process holds the world — crashed instance, second server, or backup mid-write. Verify, wait, Start again. Checklist inside.
StackOverflowError: DependencyTracker.containsReverseDependency
StackOverflowError in DependencyTracker = two resource-pack mods declaring each other. Deduplicate fabric-api and disable pack-manager mods.
Server exited with code 1
Exit code 1 means the JVM hit an unhandled error. The code itself says nothing — the real cause is in the log above the exit line. How to read it.
Server exited with code 137 (SIGKILL / OOM)
Exit code 137 means the OS killed the Java process — almost always host-level out-of-memory pressure, not a Minecraft bug. Fix RAM sizing.
java.lang.OutOfMemoryError: GC overhead limit exceeded
'GC overhead limit exceeded' is the slow-crash cousin of OutOfMemoryError — the JVM spends nearly all its time garbage-collecting. RAM sizing or a leak.
You need to agree to the EULA
A fresh server stops with 'You need to agree to the EULA'. Accept via eula=true in eula.txt — panel hosts usually have a toggle. Legal + technical steps.
Mod requires fabric-language-kotlin (missing Kotlin classes)
A Kotlin-based Fabric mod crashes with missing Kotlin classes — fabric-language-kotlin is absent or the wrong version. One library jar fixes it.
'java' is not recognized / java: command not found
The server can't find a Java runtime at all — PATH or JAVA_HOME broken, or no runtime installed. Fix the environment or use your host's runtime picker.
Failed to parse whitelist.json (invalid UUID)
A malformed whitelist.json or ops.json — wrong UUID format or broken JSON — can stop the server from starting. Fix syntax or regenerate entries.
Failed to load level data / level.dat (world won't open)
'Failed to load level data' usually means level.dat is truncated after a crash mid-save. Recover from backup first; a level.dat_old fallback also exists.
You are logged in from another location / connection throttled
'Logged in from another location' is Mojang's account protection — or the server throttling rapid reconnects. Which side is acting, and every fix.
Mod requires a newer loader (Fabric Loader / Forge / NeoForge version error)
'Mod file requires Fabric Loader X' or a Forge version gate means the loader is older than the mods. Update the loader — or match the mods to it.
java.lang.OutOfMemoryError: Direct buffer memory
Direct buffer memory OOM is off-heap network/disk buffers running dry — common with many players or proxies. Raise MaxDirectMemorySize.
Outdated client! Please use 1.21.x (protocol mismatch)
'Outdated client' means client and server run different Minecraft versions. Match the versions — or bridge them with ViaVersion/Geyser for mixed setups.
Unable to load chunk / Exception ticking world (corrupt region file)
A crash loop pointing at one chunk usually means a corrupt region file from a crash mid-save or disk error. Isolate the region, restore or trim it.
Bedrock player can't join — Geyser/Floodgate not installed or misconfigured
Bedrock failing to join a Java server is Geyser/Floodgate territory: missing plugin, UDP 19132 blocked, or auth type mismatch. Full checklist inside.
Or skip the reading entirely
Paste your crash-report.txt into the Crash Doctor and you'll get the most likely cause plus the one thing to try first. Free, no signup, secrets auto-stripped from input.