Common Reasons Your Minecraft Server Won't Start (and How to Fix Them)
Table of Contents
Few things are more frustrating than clicking Start and watching your Minecraft server console scroll a wall of red text before going silent. The good news: virtually every “won’t start” failure has a small handful of common root causes, and once you can read the error message, the fix is usually a 30-second change.
This post walks through the eight most common reasons a Minecraft server won’t start on Witchly, what their console errors look like, and the exact fix for each.
How to read your server’s console output
Before debugging anything, make sure you know where the actual error is. The Minecraft console can scroll past hundreds of lines on startup; the real error is usually in the last 50 lines before the server stops trying.
In the Witchly dashboard, the Console tab shows live output and you can scroll up. Look for:
- Lines starting with
[ERROR],Exception,Caused by,Failed - A stack trace block (multiple
at ...lines) - A final line that often summarises why the server quit
Skim from the bottom up. The last error the server logged before stopping is usually the one that matters.
1. The Minecraft EULA hasn’t been accepted
What you’ll see:
[Server thread/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
[Server thread/INFO]: ServerStop
Why: Mojang requires every server operator to accept the Minecraft EULA before any server can run. The first time you start a fresh server, the file eula.txt is created with eula=false. The server refuses to launch until that’s eula=true.
The fix: On Witchly, click Start once and you’ll see a popup prompting you to accept the EULA. Click Accept & Start — the dashboard writes eula.txt for you and starts the server. You only do this once per server.
If you’re not seeing the popup or it’s not working, edit eula.txt directly via the File Manager, change eula=false to eula=true, save, and restart.
2. Java version mismatch
What you’ll see:
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: net/minecraft/server/Main has been compiled by a more recent version of the Java Runtime (class file version XX.0), this version of the Java Runtime only recognizes class file versions up to YY.0
Why: The server JAR was compiled against a newer Java than your server is running. MC 1.20.5+ needs Java 21; MC 1.18-1.20.4 needs Java 17; MC 1.17 needs Java 16; MC 1.8-1.16.5 needs Java 8.
The fix: On the Startup tab, change your server’s Docker image to one matching your MC version. The dashboard will surface a Java mismatch banner with a one-click suggestion when it detects the mismatch — use that.
For the full mapping table, see the Java versions post.
3. Out of memory
What you’ll see:
java.lang.OutOfMemoryError: Java heap space
Or:
Exception in thread "Server thread" java.lang.OutOfMemoryError: GC overhead limit exceeded
Or, more subtly, the server crashes mid-startup without printing a clean error — usually after a long pause.
Why: Either your server’s RAM allocation is below what your Minecraft setup needs, or a particular plugin/mod is leaking memory. Big modpacks (RLCraft, ATM10, Vault Hunters) need 6-8 GB minimum. Even moderately-modded servers want 4 GB. Vanilla Paper can run on 1-2 GB but barely.
The fix:
- Match your plan size to your workload. The free tier has 2 GB max RAM allocated; that’s enough for vanilla Paper with 5-10 players, but nowhere near enough for a big modpack.
- For Elite users: upgrade to a plan with more RAM. Reactor (8 GB) handles most modpacks; Mainframe (16 GB) handles all of them.
- Check the resource graphs on the home tab — if RAM is pegged at 100% in the seconds before the crash, that’s your smoking gun.
For more on RAM budgeting, see understanding server resources.
4. The server JAR file is missing or corrupted
What you’ll see:
Error: Unable to access jarfile server.jar
Or:
Exception in thread "main" java.lang.NoClassDefFoundError: net/minecraft/server/Main
Why: The server JAR (the file Minecraft actually runs) doesn’t exist in the expected location, or it got corrupted during upload, or the egg’s startup script can’t find it because the variable points to the wrong filename.
The fix:
- Open the File Manager in your dashboard and confirm the JAR exists in the server’s root directory.
- If the JAR is missing or corrupted, re-upload it via the File Manager or SFTP.
- On the Startup tab, check the
SERVER_JARFILEvariable — make sure it matches the actual filename of your JAR. - Modpack-installed servers often use a
run.shor similar entry point instead of a.jardirectly; verify your startup command matches what your modpack expects.
5. Port already in use
What you’ll see:
[Server thread/WARN]: The exception was: java.net.BindException: Address already in use
[Server thread/INFO]: Perhaps a server is already running on that port?
Why: Something else is already listening on the port your Minecraft server wants to use. On a shared environment this almost never happens because each server gets its own dedicated port; on Witchly, this error usually means you tried to start the server while it was already running.
The fix:
- On the dashboard, kill the server (the Power button → Kill option) to force-stop any lingering process.
- Wait 10 seconds for the port to release.
- Click Start.
If the error persists across Kill+Start, contact support — that genuinely shouldn’t happen on a properly-configured Witchly server.
6. Plugin or mod conflict
What you’ll see: Often a long stack trace mid-startup, mentioning a specific plugin or mod by name. Examples:
[ERROR]: [PluginName] An error occurred while loading...
java.lang.NoClassDefFoundError: ...
java.lang.IllegalStateException: ...
Or the server starts, gets to “Done!” and… immediately crashes when the first player connects.
Why: A plugin/mod expects a different version of Minecraft, depends on a missing library, conflicts with another plugin/mod, or is just buggy.
The fix: Bisect.
- Move every plugin out of the
/pluginsfolder (use the File Manager). Restart. Does it start cleanly? - If yes, move plugins back in, half at a time. Restart between each batch. The half that crashes contains the culprit.
- Repeat — keep halving — until you’ve isolated the single plugin causing the issue.
- Update that plugin to its latest version, find an alternative, or remove it.
Same approach for mods. It’s tedious but rarely fails.
For modpack updates: a modpack version bump frequently breaks something. If your modpack worked yesterday and broke after an update, downgrade to the previous modpack version while you investigate.
7. Disk full
What you’ll see:
java.io.IOException: No space left on device
Or sometimes silent failures: world saves don’t work, plugins can’t write their config, the server starts then crashes within minutes.
Why: Your server’s disk is full. World data grows over time; backups take up space; mod logs and crash reports accumulate. On free-tier servers with 4 GB disk, this is genuinely common.
The fix:
- Open the File Manager and look at folder sizes. The biggest culprits are usually
/world/(world data),/logs/(server logs), and/crash-reports/. - Delete old crash reports and old log files (anything older than a week or two is rarely useful).
- If your world is huge (often the case with old server worlds, or claim-based worldgen): consider migrating to the next plan up, or world-pruning unused chunks (plugins like World Border or Plot Squared can help).
- Upgrade your plan if you’re consistently disk-pressured. Free tier maxes at 16 GB; Elite Reactor offers 50 GB; Mainframe offers 100 GB.
8. Wrong startup variables
What you’ll see: A wide range of vague errors that don’t match any of the categories above. Stack traces mentioning “missing config,” “invalid argument,” or environment variables that aren’t set.
Or just: server starts, crashes within seconds of “Done!”, with very little useful console output.
Why: A required environment variable on the Startup tab is empty or set to a value that doesn’t make sense. Common culprits:
MEMORYset incorrectly (not enough headroom for the JVM)SERVER_JARFILEdoesn’t match the actual JAR- Modpack-specific startup variables (e.g.,
FORGE_VERSION) are wrong or missing
The fix: On the Startup tab, scroll through every variable and make sure each one has a sensible value. The dashboard uses smart placeholders for required-but-empty variables when you first deploy (e.g., a placeholder of 0 for an integer field), so initial deploys usually work — but if you’ve manually edited variables, double-check.
Reset to the egg’s default startup if you’ve made many changes you can’t reverse: there’s a “reset to defaults” option in the Startup tab dropdown.
A general debugging workflow
When you don’t know where to start:
- Open the Console and scroll up from the bottom. Find the last
ERROR,Exception, orCaused byline. That’s almost always the real cause. - Search the error verbatim in your favourite search engine. Minecraft’s player and modder community is huge — virtually every error message you’ll see has been hit by someone else, and Stack Overflow / GitHub issues / Reddit posts often have the answer.
- Check the Java version matches your MC version (the most common cause of ambiguous failures).
- Disable plugins/mods to bisect (covered above).
- Look at recent changes. If your server worked yesterday and doesn’t today, what changed? An update? A new plugin? An upgraded modpack?
- Ask in our Discord — paste the relevant 30-50 lines of console output (not screenshots — actual text), and someone in the community or on the support team can usually point you to the cause.
What to share when asking for help
When you ask for help (in our Discord, or anywhere), include:
- The relevant 30-50 lines of console output, copy-pasted as text (not a screenshot)
- Your MC version and your server flavour (vanilla, Paper, Forge, Fabric, etc.)
- What you were trying to do when it broke (e.g., “I just added X plugin and now the server won’t start”)
- Whether the server worked recently (yesterday? before an update?)
This information turns a 30-minute back-and-forth into a 30-second answer.
Wrapping up
Minecraft server failures are 90% the same eight categories. EULA. Java version. RAM. JAR location. Port conflict. Plugin conflict. Disk space. Startup variables. Once you’ve debugged each kind once, the next time it happens you’ll recognise the symptom and fix it in seconds.
For more depth:
- Java Versions for Minecraft Server Hosting — version matching
- Understanding Game Server Resources — RAM, CPU, disk
- Optimizing Your Minecraft Server for Maximum Performance — beyond just “make it start,” making it run well
- Minecraft troubleshooting doc — dashboard-specific walkthroughs