Diagnostics and Auto-fix
Find the cause of a crash and let Coalstack fix the common problems.
Updated Oct 30, 2026
Diagnostics, a tab on the Server page, stacks two tools on one page: the free Auto Debugger at the top, and the paid AI Log Analyzer (see AI Tools) below it.
The Auto Debugger scans the server's latest.log, recent crash report files, and the server's captured console output for known error patterns: OutOfMemoryError, port conflicts, mod dependency issues, corrupted chunk warnings, client-only mods installed on a server, and several dozen others. It filters out benign noise like deprecation notices and informational lines that look alarming but aren't.
This is a fixed, deterministic pattern matcher written in Rust, not an AI call. It's available on the free tier because it doesn't cost anything to run. Each match is shown with the file it came from, a stable error code, a plain-English explanation of what the error means, and the surrounding log lines for context. See the full error code reference for longer explanations than fit in the app.
For example, these lines from latest.log are matched as an out-of-memory error:
[12:04:51] [Server thread/ERROR]: Encountered an unexpected exception
java.lang.OutOfMemoryError: Java heap spaceAuto-fix
When a server crashes or fails to start and the Auto Debugger recognises the cause, Coalstack can fix it for you. It plans the fix, shows it, applies it, restarts the server and checks it comes online. It covers:
- A missing mod dependency: the mod it needs is downloaded from Modrinth, matched to your loader and Minecraft version. Coalstack finds the right project by identifying the mod that is asking (Modrinth recognises a jar by its contents, so a renamed file still works), and uses Forgified Fabric API and Sinytra Connector where Fabric mods run on NeoForge or Forge.
- A client-only mod (a rendering or shader mod that crashes a server): moved out of mods/. A client-only mod that is asking for libraries is removed rather than fed what it wants.
- Two copies of one mod: the older file is moved out of mods/.
- A taken port: the next free port is chosen. Players and port forwarding will need the new one.
- Too little memory: the server's memory is doubled, never past 70% of your PC's memory or 16 GB.
- An unaccepted EULA: always asks first, because it is you agreeing to Minecraft's EULA.
Auto-fix has three modes, chosen on the Diagnostics page: show me the fix first (the default, you review every change), fix it for me (applies straight away, except the EULA step), and stay out of the way. After a crash a fix never pops up in the middle of the screen: a small message at the bottom of the window offers to review it, and the same fix waits on the Diagnostics page. While a fix is being applied you can keep working and follow it from the bottom of the window. My Servers shows each server's Auto-fix status and when it was last fixed. When a fix does not work, you choose to revert that round or continue, with a reason shown; there are at most five rounds. Mods Coalstack removes are moved aside, not deleted, and everything from a session can be undone from the same dialog. The journal behind Undo lives in the server's .coalstack-autofix folder and keeps the latest session only. Once a fix has kept the server running for 30 minutes, its undo copies are deleted.
Check for problems
The Content page has a Check for problems button. It looks through your mods folder for what is likely to break the server before it does: a client-only mod, or a mod whose required mod isn't installed. Optional dependencies are ignored, and so is a required mod that another mod carries inside itself (jar-in-jar). The result opens in the same review dialog as auto-fix, and nothing changes until you press Apply. The server is not started, and the button waits until it is stopped, because the fixes change files it is using.
The last result is kept. Clicking the button again shows it straight away while nothing has changed (the Minecraft version, the loader, and every jar in mods/ by name, size and date); if anything has, or the result is more than half an hour old, Coalstack checks again. Recheck in the dialog always checks again.

