Project Zomboid “Normal Termination” Error: Read the Real Cause
Build 42.19 co-op and dedicated-server troubleshooting: use the earlier log error—not the final “Normal Termination” label—to choose a fix.
NormalTermination by default. Seeing that string alone does not prove low RAM, a bad save, a blocked port, or a mod failure. Treat it as a status label and read the earlier lines in the log.
This guide covers Host Game / co-op launch failures and sudden hosted-server exits. Always open your own log first. If the UI only shows a generic stop message, check coop-console.txt, console.txt, and, for dedicated servers, server-console.txt.
1. Back up before you change anything
Zomboid user-data folder to another drive or archive. Do not delete map_t.bin, player databases, or multiplayer save folders as a generic “fix.”
Build 42 also has built-in server backups. Defaults in the current server options are:
BackupsCount=5— keep five rotating archives per backup type.BackupsOnStart=true— create a startup backup when the server starts.BackupsOnVersionChange=true— back up when the detected game version changes.BackupsPeriod=0— periodic real-time backups are off; set a positive minute value only if you want them.
Automatic archives usually land under the Zomboid/backups tree as rotating backup_*.zip files. They are a safety net, not a substitute for a full manual copy before you rename or delete world files.
2. Collect the correct logs
Current log names use hyphens, not underscores. The co-op console file is coop-console.txt, not coop_console.txt. When you package logs for support, include console.txt, coop-console.txt, and server-console.txt.
Windows
- User data:
%UserProfile%\Zomboid\ - Client log:
%UserProfile%\Zomboid\console.txt - Host / co-op server log:
%UserProfile%\Zomboid\coop-console.txt - Dedicated server log, when used:
%UserProfile%\Zomboid\server-console.txt - Multiplayer saves:
%UserProfile%\Zomboid\Saves\Multiplayer\<server>\ - Player-side multiplayer folder:
%UserProfile%\Zomboid\Saves\Multiplayer\<server>_player\ - History / support:
%UserProfile%\Zomboid\Logs\andlogs.zipwhen present
macOS and Linux
- User data:
~/Zomboid/ - Client log:
~/Zomboid/console.txt - Host / co-op server log:
~/Zomboid/coop-console.txt - Dedicated server log, when used:
~/Zomboid/server-console.txt - Multiplayer saves:
~/Zomboid/Saves/Multiplayer/<server>/ - Player-side multiplayer folder:
~/Zomboid/Saves/Multiplayer/<server>_player/ - History / support:
~/Zomboid/Logs/andlogs.zipwhen present
Search the current co-op log first when Host Game fails:
# Windows PowerShell
Select-String -Path "$env:USERPROFILE\Zomboid\coop-console.txt","$env:USERPROFILE\Zomboid\console.txt" `
-Pattern "exception|error|caused by|bind|address already in use|OutOfMemory|workshop|mod|map_t|WorldVersion|terminated|fail"
# macOS / Linux
grep -niE "exception|error|caused by|bind|address already in use|OutOfMemory|workshop|mod|map_t|WorldVersion|terminated|fail" \
~/Zomboid/coop-console.txt ~/Zomboid/console.txt
Do not stop at the last generic line. Read upward to the first exception, bind failure, mod/Workshop failure, or named file in the same launch attempt, and keep that full block.
3. Branch by log signature, not by the UI text
| What the log shows | Likely meaning | Safe next step |
|---|---|---|
NormalTermination alone, with no earlier failure |
Default co-op stop label after the host process exits. It is not a memory diagnosis by itself. | Keep searching earlier lines in coop-console.txt and console.txt. Confirm you are looking at the latest launch, not an old log. |
BindException, Address already in use, or bind/port failure |
Another process still holds DefaultPort, UDPPort, or RCONPort. |
Stop leftover Java / Project Zomboid processes. Read the server INI for the configured ports. Change ports only after the log shows a bind conflict. |
OutOfMemoryError, Java heap space, or explicit JVM memory failure |
The process actually ran out of heap or failed memory allocation. | Only then raise host or dedicated-server memory settings, reduce heavy mods, and retest on the same backed-up world. Do not infer this from NormalTermination alone. |
workshop, mod, checksum, or version mismatch text |
Workshop content failed to download, load, or match between client and server. | Compare Steam branch, Workshop IDs, mod IDs, and load order. Retest on a separate test server without mods before touching the live save. |
A named save file, .db, or map_t.bin immediately before the failure |
That specific file may be unreadable, incomplete after a power loss, or incompatible with the current game version. | With a full backup already made, rename or quarantine only the named file so it can be restored. Never wipe the whole Multiplayer folder first. |
| Sudden exit after power loss, forced kill, or OS crash with no clean shutdown | The last write may be incomplete. Corruption is possible, but not proven until the log or a load attempt names the bad file. | Restore from a native or manual backup taken before the crash. Prefer known-good backup_*.zip archives over deleting live world files. |
4. Stale processes and ports — only when the log supports them
Leftover Java or Project Zomboid processes can leave ports occupied and make the next Host Game launch fail. Checking Task Manager, Activity Monitor, or lsof is reasonable after a bind error or after a previous crash that never closed cleanly. It is not a substitute for reading the log.
# Example: inspect default player-data port 16261 (replace with your INI value)
# Windows PowerShell
Get-NetUDPEndpoint -LocalPort 16261 -ErrorAction SilentlyContinue
# macOS / Linux
lsof -nP -iUDP:16261
Restarting the computer can clear a stuck process. It does not fix a wrong INI port pair, a broken mod list, or a damaged world file.
5. “Server has stopped launching” and map_t.bin
map_t.bin as a routine fix.
In the current game, map_t.bin stores world-time and version information used when a multiplayer world starts. The normal load path does not present “delete map_t.bin” as a general repair. A debug save-config tool can remove selected files, including map_t.bin, but that is a deliberate advanced action—not a default recovery button.
- Confirm the log actually names
map_t.binor a version mismatch. If it does not, stay on the branch that matches the real signature. - Stop the server and client. Keep the full folder backup you already made.
- Prefer restoring the complete multiplayer save (or a native
backup_*.zip) over deleting individual world files. - Only as an advanced, last-resort test — and only with a restore path ready — rename
map_t.binout of the save so the game can recreate a missing first-run version file. Understand that this can desync world time or version expectations; restore immediately if the world still fails or behaves wrong. - Never delete
players.db, chunk maps, or the whole<server>directory while “trying something.” Those steps can erase characters and built structures permanently.
6. Manual multiplayer backup layout
For a hosted world named servertest, the common pair is:
Saves/Multiplayer/servertest/— server world data (map chunks, meta, vehicles, world databases).Saves/Multiplayer/servertest_player/— host/player-side multiplayer data for that world name.
Copy both folders, the matching Server/<name>.ini settings, and recent logs together. Put restored folders back under the same names before relaunching.
7. Controlled retest
- Close the client and stop every server instance.
- Archive the complete
Zomboiduser-data folder. - Preserve
coop-console.txt,console.txt, and anyserver-console.txt/logs.zip. - Apply one change that matches the exact log signature (free a port, fix mods, restore a backup, or adjust memory only after an OOM line).
- Start Host Game or the dedicated server once and wait for a clear ready or failure message.
- Compare the new log with the old one. If the message changed, follow the new signature instead of stacking unrelated fixes.
What to include when asking for help
- Exact Project Zomboid build and Steam branch for host and clients.
- Whether this is Host Game co-op or a dedicated / rented server.
- The first real exception, bind line, Workshop/mod failure, or named file from
coop-console.txt— not only “Normal Termination.” - Operating system and whether the machine recently lost power or force-killed Java.
- Enabled Workshop IDs and mod IDs, plus whether a clean no-mod test server still fails.
- Sanitized
logs.zipafter removing passwords, tokens, and addresses you do not want public.
Related guides: multiplayer log triage when a vague error code appears, server administrator backup and options, server memory sizing when logs show heap pressure, finding a mod that breaks launch, and manual save backup steps.