Minecraft Server Won't Start

The five errors that stop a Minecraft server booting, how to read the log line that names yours, and the exact fix for each.

A Minecraft server that closes a second after you start it looks like a mystery and almost never is one. The server prints the reason before it exits, in the console or in logs/latest.log, and in the overwhelming majority of cases that line names the problem outright. This guide covers the five causes behind nearly every failed start, how to recognise each from its error message, and what to change.

Read the log before you change anything

Open logs/latest.log in the server folder and scroll to the very bottom. The last few lines, and the first line of the last stack trace, tell you which of the causes below you have. Guessing is what turns a two-minute fix into an evening, because every fix here is different and none of them help with the others.

On FluxCraft the console and the log file are both in the dashboard, so you can read the crash without SSH or a file transfer. If the server restarts in a loop, the log from the previous attempt is in logs/ as a timestamped archive.

What the log saysCauseSection below
"You need to agree to the EULA"EULA not acceptedCause 1
"Unsupported class file major version" or UnsupportedClassVersionErrorWrong Java versionCause 2
"Could not reserve enough space for object heap" or OutOfMemoryErrorMemory misconfiguredCause 3
"FAILED TO BIND TO PORT" or "Address already in use"Port in useCause 4
A stack trace naming a specific mod or pluginMod or plugin conflictCause 5

Cause 1: the EULA has not been accepted

On the very first start, the server generates eula.txt, prints a notice about agreeing to Mojang's licence, and exits immediately. This is by far the most common reason a brand new server "does not work", and it is not an error at all: it is the server waiting for you.

Open eula.txt, change eula=false to eula=true, save, and start again. Nothing else in the file matters. If you are on a managed host the EULA is normally accepted for you at deploy time, which is why this one mostly bites people setting up a server by hand.

Cause 2: the Java version is wrong

This is the failure that confuses people most, because it does not look like a version problem. The server throws UnsupportedClassVersionError, or complains about an "Unsupported class file major version", and stops. It means the jar was compiled for a newer Java than the one you are running it with.

The requirement is a minimum, not an exact match. An older Minecraft runs perfectly on a newer Java. The failure only ever happens in the other direction, a newer Minecraft launched on an older Java. Modded servers inherit the requirement of whichever game version their Forge, NeoForge or Fabric build targets.

  • Check what you actually have with "java -version". On a machine with several JDKs installed, the one on your PATH is not always the one you think.
  • If the error names major version 65 and you have Java 17, you need Java 21. Install the matching LTS build and point your start script at it explicitly rather than relying on PATH.
  • On a managed host this is handled by the image, so picking the right server version in the dashboard is the whole of the fix.
Minecraft versionMinimum JavaClass file major version in the error
26.1 and newerJava 2569
1.20.5 to 1.21.11Java 2165
1.18 to 1.20.4Java 1761
1.12 to 1.17Java 852

Cause 3: memory is misconfigured, not merely insufficient

Two different memory errors fail a start and they mean opposite things. "Could not reserve enough space for object heap" at launch means you asked for more RAM in -Xmx than the machine can give you, so the JVM never starts. An OutOfMemoryError partway through startup means the value is too low for what you are loading, which on a large modpack is very easy to do.

Set -Xmx to a value the machine actually has, leaving headroom for the operating system and JVM overhead rather than allocating every byte. On a 4 GB machine, -Xmx3G is sensible and -Xmx4G is not. Vanilla wants at least 2 GB; a medium modpack wants 8 GB and a heavy one 16 GB or more.

A common self-inflicted version of this is copying a start script from a tutorial written for a different machine. If your script says -Xmx8G and your box has 4 GB, the server will never start no matter what else you fix.

Cause 4: the port is already in use

"FAILED TO BIND TO PORT" or "Address already in use" means something else is holding the port, and nine times out of ten that something is a previous instance of your own server that did not shut down cleanly. Check for a stray java process and end it before starting again.

The other case is two servers configured for the same port. Java Edition defaults to TCP 25565 and Bedrock to UDP 19132, so if you are running both on one machine they do not collide, but two Java servers will. Change server-port in server.properties for the second one.

On a managed host each deployment gets its own port, so this class of failure disappears. It is a self-hosting problem.

Cause 5: a mod or plugin is breaking the start

If the log ends in a stack trace that names a file in plugins/ or mods/, you have found it. The usual causes are a plugin built for a different Minecraft version, a mod missing a dependency, or two mods that cannot coexist. Server software matters too: a Bukkit plugin does not run on vanilla, and a Forge mod does not run on Fabric.

When the trace does not name anything useful, bisect. Move everything out of the folder, confirm the server starts clean, then add half back and restart. Four or five rounds of that will isolate any conflict, however large the pack, and it is far faster than reading changelogs.

After a Minecraft version upgrade, assume every plugin needs a matching update. Upgrading the server jar while leaving the plugins on the old version is the single most common way a working server stops starting.

When the server starts but nobody can join

That is a different problem and the log will be clean. A server that boots to "Done" is running; if players cannot reach it the issue is the address, the port forward, or online-mode. Check that you are giving people the full address including the port, and that the port you forwarded matches server-port in server.properties.

On FluxCraft your server has its own public address on a yourserver.app.runonflux.io domain, so there is no router involved and nothing to forward.

A checklist to work through

In order, because each step rules out the ones after it:

  • Open logs/latest.log and read the last twenty lines. Match them against the table at the top of this page.
  • Confirm eula.txt says eula=true.
  • Run "java -version" and check it against the version table above.
  • Check that -Xmx in your start script is comfortably below the machine's physical RAM.
  • Look for a stray java process holding the port, and confirm no second server shares it.
  • If a mod or plugin is named in the trace, remove it. If nothing is named, bisect the folder.
  • After a version upgrade, update every plugin and mod to a matching build before blaming anything else.

Frequently Asked Questions

Why won't my Minecraft server start?

In nearly every case it is one of five things: the EULA has not been accepted, the Java version is too old for the server jar, -Xmx asks for more memory than the machine has, another process is holding the port, or a plugin or mod is throwing during load. The last lines of logs/latest.log name which one.

What does "Unsupported class file major version" mean?

The server jar was compiled for a newer Java than the one running it. Major version 69 means Java 25, 65 means Java 21, 61 means Java 17 and 52 means Java 8. Install the matching version and point your start script at it directly rather than relying on PATH.

My server exits immediately with no error. What is wrong?

On a first start this is almost always the EULA. The server writes eula.txt, prints a notice about agreeing to Mojang's licence, and exits. Set eula=true and start again. If it is not the first start, read logs/latest.log, because something is being printed even if the window closes too fast to see it.

How do I fix "Could not reserve enough space for object heap"?

Lower the -Xmx value in your start script. That error means you asked the JVM for more memory than the machine can provide, so it never starts. Leave headroom for the operating system: on a 4 GB machine, -Xmx3G works and -Xmx4G does not.

How do I find which mod is crashing my server?

Read the stack trace at the end of latest.log first, since it usually names the file. If it does not, bisect: empty the mods folder, confirm a clean start, then add half back at a time. Four or five restarts isolate any conflict regardless of pack size.

My server stopped starting after I updated Minecraft. Why?

Plugins and mods are built against a specific Minecraft version and do not carry forward. Upgrading the server jar without updating them is the most common way a working server breaks. Update every plugin and mod to a build matching the new version, and check the Java requirement changed too.

What does "FAILED TO BIND TO PORT" mean?

Something is already listening on the port the server wants. Usually it is a previous instance of the same server that did not shut down; end the stray java process. If you run two Java servers on one machine, change server-port in server.properties for the second.

A server that starts every time

The right Java version, the EULA accepted, the memory set and the port opened for you. Pick a RAM tier and deploy in under 30 seconds, with the console and logs one click away. First month free.

Related guides