Where Vintage Story Stores Server Crash Logs
Checked on 14 October 2026 against the Vintage Story 1.22.7 server and its game files.
Vintage Story writes its own logs into the Logs folder of its data directory, separate from the process output that the panel console shows. When a dedicated server crashes, the game writes a crash report to server-crash.log in that folder and prints it to the console. Errors that stop the server without a crash report, such as Caught unhandled exception in thread '...'. Shutting down server., go to server-main.log instead.
The two log layers
Every Vintage Story server on a Supercraft node produces two parallel log streams:
| Layer | Where | What it catches |
|---|---|---|
| Process output | stdout.log and stderr.log, under Game Logs in the panel's Logs tab |
Everything the server prints to its console, plus .NET runtime failures from before the game's logger starts, out-of-memory kills, missing libraries and signals. |
| Game's own logger | data/Logs/, which is Config/Logs when you connect over FTP |
The files described below, including the crash report. |
Most "I need the crash log" requests want the game's own logger. The process output matters when the server never got far enough to start it.
What lives under data/Logs/
data/Logs/
โโโ server-main.log # main log: startup, warnings, errors, fatal stops
โโโ server-debug.log # debug output, written by default
โโโ server-worldgen.log # world generation, kept across restarts
โโโ server-chat.log # chat history
โโโ server-build.log # blocks placed and removed, only with LogBlockBreakPlace on
โโโ server-audit.log # commands players ran, kicks, bans, teleports, container use
โโโ server-crash.log # every crash report, created at the first crash
โโโ Archive/ # previous runs, one folder each, stamped yyyy-MM-dd_HH_mm_ss
The two you will use most are server-main.log (what was happening before things went wrong) and server-crash.log (the crash report itself). The crash log is never overwritten: each new crash is added to the end of the file, so the newest report is at the bottom.
What's in a crash report
Each report in server-crash.log contains, in this order:
Game Version:and the exact build.- The time and
Critical error occurred. When code from a mod is in the stack trace, the line continues within the following mod:and names it. Loaded Mods:every loaded mod asmodid@version.Involved Harmony IDs:, only when a mod's Harmony patch was part of the code that failed.- The exception and its full stack trace, followed by any inner exceptions.
Read the second line first. If it names a mod, that mod is the first suspect: update it to a release for your game version, or remove it. If it names none, the exception type and the first frames of the stack trace show which part of the game failed.
Rotation policy
The server archives its logs on start, it does not simply overwrite them. The previous run's files move into Archive, into a folder stamped yyyy-MM-dd_HH_mm_ss with that run's start time. Two command line options control this: --archiveLogFileCount keeps 5 archived runs by default, and --archiveLogFileMaxSizeMb (1024 MB by default) is a size cap, so a set of logs bigger than that is deleted instead of archived. --append switches the archiving off and keeps writing to the same files, and --logPath moves the whole folder to another absolute path. server-crash.log and server-worldgen.log are never archived; they stay in place and keep growing. A server that restarts in a loop still pushes a good run out of the five archive slots quickly, so copy the whole Logs folder before you restart a server you intend to diagnose.
Messages you will actually see
| Message | What it means | What to do |
|---|---|---|
Critical error occurred in the following mod: ... |
A mod's code crashed the server. | Update the named mod to a release for your game version, or remove it. |
Caught unhandled exception in thread '...'. Shutting down server. |
An error in one of the server's worker threads. The stack trace follows in server-main.log. |
If the trace names a mod, update or remove that mod. |
Failed to read serverconfig.json. Did you modify it? See server-main.log for the affected line. Will stop the server. |
serverconfig.json is not valid JSON, usually after a hand edit. |
The error just above it in server-main.log gives the line and position. Fix that spot or restore the file. |
Disk space is below 400 megabytes |
The server stops itself because a full disk can corrupt the save. | Free up space. The threshold is DieBelowDiskSpaceMb. |
The server is currently using more than 90% of its maximum allowed memory, then Server is consuming more than 50000 MB of RAM |
The server's own memory cap, DieAboveMemoryUsageMb, 50000 MB by default. |
Rarely reached at the default. Find what is using the memory before you raise it. |
More then 100000 errors detected. Shutting down now. |
Something logged errors nonstop, often a broken mod. The limit is DieAboveErrorCount. |
Read the repeated error in server-main.log. |
OutOfMemoryException on Linux while the machine still has free memory |
A Linux limit on memory mappings can run out before the memory does. | On a server you run yourself, the developers suggest sudo sysctl -w vm.max_map_count=262144. |
No crash report, and stderr.log shows signal 9 |
The operating system killed the process, almost always for memory. | See reading stderr.log. |
If there is no crash report
A report is written only when the game catches the failure itself. If the server stopped and server-crash.log has nothing new:
- Read the end of
server-main.log. Errors in the server's worker threads and the safety stops in the table above end there with their message. - If
server-main.logsimply ends mid run, openstderr.logfrom the panel's Logs tab. Asignal 9there means the process was killed from outside. - If the game's logs are empty or missing, the process died before the logger started.
stderr.logthen shows the .NET runtime or missing library error.
The general procedure is documented in When your game server exits silently: read stderr.log.
Crash logs on your own PC
The game client keeps the same kind of folder in your data directory: %APPDATA%\VintagestoryData\Logs on Windows, ~/.config/VintagestoryData/Logs on Linux and ~/Library/Application Support/VintagestoryData/Logs on macOS. A client crash is written to client-crash.log there, next to client-main.log, and the game opens its crash reporter window. The official wiki's VintagestoryData folder page shows the rest of that folder.
Sharing a crash log for support
When you open a support ticket, the useful files are (in order):
server-crash.log, or at least its last report.server-main.logfrom the same run, or its copy inArchiveif the server has restarted since.- Your
serverconfig.jsonwith the password removed.
That set answers most crash questions without follow-up.
Quick rule: start with the last report in server-crash.log. If there is none, read the end of server-main.log, and go to stderr.log only when both are silent.
Crashes fixed in the 1.22 patches
If your crash matches one of these, the fix is updating the game. 1.22.7 is the newest stable build. From the official release notes:
| Fixed in | Crash |
|---|---|
| 1.22.2 | A rare crash loop on large servers. |
| 1.22.3 | Rare crashes when interacting with lanterns; a crash on an invalid forge block entity or block type; a crash when using the arrow keys in an inventory with no slots; a crash when burning something in a firepit that rots into something that does not rot. |
| 1.22.4 | A client crash with the message System.ArgumentException: Given pos contained NaN:, and a rare server crash with falling snow layers. |
| 1.22.7 | A crash when interacting with Erel spawned in creative mode. |
If a crash names a mod right after a game update, see the mod save corruption guide. For what else is known about 1.22, see our 1.22 stability issues guide.
Vintage Story hosting with logs you can actually find
On Supercraft Vintage Story hosting, the console shows the server's output live, crash reports included, the Logs tab keeps stdout.log and stderr.log for download, and the game's own Logs folder is under Config/Logs over FTP. Pair this with the admin commands reference to act on what the log tells you.