Exit code 255 (the unsigned form of -1) is what launchers show when the Java process dies in a way that does not map to a tidier code: a hard JVM crash, a fatal error during early startup, or the process being killed. It carries no diagnosis of its own. The evidence lives in two places, the game log and the crash report files, and this page is a triage order for reading them.
crash-reports folder in the game directory holds timestamped reports for most hard crashes; the newest one's header names the failing component, a mod, the JVM, or graphics, in plain text.Exit code 1 is the launcher catching an ordinary failed launch, usually a mod or configuration error the game logged politely. Exit code 255 tends to be ruder: the process died before it could explain itself, which is why crash reports and hs_err files, written by the runtime as it goes down, matter more than the log's tail. Treat 255 as 'read the crash paperwork first, guess second.'
The launcher says -1 instead of 255. Same thing? Yes. -1 and 255 are the same exit value shown signed and unsigned by different tools. Everything on this page applies to both.
No crash report was created. What does that mean? The process likely died before the crash handler could run, or was killed outright (by the OS for memory pressure, or by security software). Check the launcher's output log tail and your antivirus history, and watch system memory during launch.