The server was killed from outside Java, not by a crash
What it looks like in your log
Minecraft server failed. Inspect logs above for errors that indicate cause. {"exitCode": -1}What causes it
The process runner reports exitCode -1, which is what it returns when a process is terminated by a signal instead of exiting on its own. The runner itself survived to write that line, so the signal was aimed at the Java process rather than everything around it. That rules out a normal shutdown and a Java error alike: nothing inside the JVM decided to stop.
How to fix it
The cause will not be in this log, because the server never got to write one. Memory is the first thing to check. The heap is only part of what Java claims: class metadata, compiled code, network buffers, garbage-collector structures, thread stacks and the C allocator add roughly 1.5 to 2.5 GB on a large modpack, and every byte of it counts against the limit the server is given. If -Xmx is set close to that limit there is no room left for any of it and the system eventually kills the process. On Linux, "journalctl -k | grep -i killed" names what the kernel picked. Under Docker, State.OOMKilled is often false even for a real kill, because the kernel takes the Java child rather than the container process.
Not sure this is your problem? Paste your log and Roastd will tell you which of these it actually matched, and what else it found.
Check your own log