Exit code is not a crash reason, it is a shrug
The number tells you nothing. The line above it tells you everything, and it is already sitting in your logs folder.
A Java server that dies prints Exit Code 1 and stops. That is the whole message. Exit code 1 means "the process ended abnormally" — it is a category, not a cause, and it covers everything from a missing world folder to a mod that throws during class loading.
Where the real answer lives
The exit code is printed by your launcher or hosting panel, not by the game. The cause is in logs/latest.log and, for a crash, in the report the server saves under crash-reports/. Read backwards from the end of the log until you hit the first Exception, Caused by:, or Failed to. That line names the class, the mod, or the file.
[Server thread/ERROR]: Encountered an unexpected exception
java.lang.NoSuchMethodError: net.minecraft.world.level.Level.getBiome
at com.example.mod.ExampleMixin.inject(ExampleMixin.java:41)
Caused by: java.lang.NoClassDefFoundError: com/example/lib/Helper
NoClassDefFoundError here is a missing dependency, not a corrupt world. The exit code told you none of that.
Exit codes you will actually see
| Code | Usual meaning |
|---|---|
| 0 | Clean shutdown — /stop or a scheduled restart |
| 1 | The watchdog killed a stalled tick, the JVM refused to start, or a launcher or mod loader reported a crash |
| 137 | Killed by the OS, almost always the OOM killer |
| 143 | SIGTERM — a container orchestrator stopped it |
Code 137 is the one people misread as a crash. The JVM did not fail; something outside it decided the process had used too much memory.
Java and Bedrock are not the same problem
Bedrock's dedicated server is a different program with its own logging, and advice written for Java logs will not map onto it.
Modded stacks fail differently
With mods, the first exception is often a symptom. A mixin failing to apply produces a cascade where the real culprit is the first Mixin apply failed line, not the NoSuchMethodError thirty lines later. Search the log for Mixin before you search for Exception.
Checking whether the server is up
A log tells you why it died. It does not tell you whether it is alive now. A status query against the server port answers that in one request. The tool here checks Java servers; Bedrock speaks UDP and needs its own query.
Paste the log into the Server Diagnostics tool to get the failing line pulled out, and point it at your host to confirm the server is actually responding.