Symptoms: The server crashes unexpectedly, there are ERROR or SEVERE messages in the console, players get kicked, or the server halts after a specific action. This guide is for diagnosing and fixing Minecraft server errors systematically.

Possible Causes

  • A Java exception (NullPointerException, IllegalArgumentException and so on) — an unexpected state in the code path
  • OutOfMemoryError — the RAM allocated to the server is not enough, or there is a memory leak
  • Plugin incompatibility — a gap between the server version and the plugin API version
  • Corrupted data — a world region file, player data or a plugin database has been damaged
  • Java version mismatch (UnsupportedClassVersionError)
  • The file system is full or permissions are missing — the server cannot read or write

Step-by-Step Fix

Step 1

Look for the root cause of the error inside logs/latest.log. The last "Caused by:" line in the stack trace is the real reason

bash
tail -100 logs/latest.log | grep -A 5 "Caused by:"

Step 2

Go through all the ERROR and SEVERE messages in one pass

bash
grep -iE "ERROR|SEVERE|Exception" logs/latest.log | tail -30

Step 3

If there is a crash report, open it — Minecraft crash files give far more context

bash
ls -lt crash-reports/ | head && cat crash-reports/$(ls -t crash-reports/ | head -1)

Step 4

If the error comes from a plugin (its name appears in the log), disable it temporarily and try again

bash
mv plugins/ProblematicPlugin.jar plugins/ProblematicPlugin.jar.disabled

Step 5

Check that the plugin versions are compatible with your server version

bash
grep -E "api-version|main" plugins/*/plugin.yml 2>/dev/null

Step 6

The Java version has to match the MC version: Java 21 for 1.20.5+, Java 17 for 1.17–1.20.4, Java 8–11 for 1.16 and below

bash
java -version 2>&1 | head -1

Step 7

Check how full the disk is — a full disk leads to plenty of strange errors

bash
df -h $(pwd) && du -sh world* logs/ plugins/ backups/ 2>/dev/null

Step 8

Search the exception text on Google exactly as it is; adding "site:spigotmc.org OR site:github.com" gets you the community's fix by the short route

Step 9

For recurring errors use the KEYDAL Spark Analyzer tool — free automated comments

bash
/spark profiler --timeout 120