EURO TRUCK SIMULATOR 2 · SERVER TROUBLESHOOTING · NOVEMBER 2026

Euro Truck Simulator 2 Server Troubleshooting Guide

An ETS2 Convoy dedicated server has no game files, no mods and no interface, so when something breaks it only tells you through its log. This guide follows that log through the four ways a server goes wrong: it will not start, nobody can see it, nobody can join, or it drops mid-session. Every fix explains what the server is actually doing.

Won’t start

Usually a missing packages pair, a broken server_config.sii, wrong-build packages, or on Linux a missing steamclient.so.

Runs but invisible

The browser needs the dedicated ports reachable. If that path is blocked, the search ID in the log is the fallback.

Visible but no joins

After patches, build mismatch is the common cause. For larger convoys, both server and every player must raise g_max_convoy_size.

Disconnects or shuts down

Read the last multiplayer lines in the log and any server.crash.txt. Steam disconnects and sleeping host machines are a known cause.

Start with the server log, not the browser

The dedicated server creates its home folder on first launch, then writes a default server_config.sii and server.log.txt. That home folder matters more than the executable folder, because the server reads server_config.sii, server_packages.sii and server_packages.dat from the home folder only, not from bin/linux_x64 or bin\win_x64. If you rent a server, a panel file manager usually shows the same home folder path; our guide to game server control panels explains the usual layout.

Setup Home folder What to check first
Windows Documents\Euro Truck Simulator 2 server.log.txt, then server_config.sii, then the packages pair
Linux ~/.local/share/Euro Truck Simulator 2 Same files, plus exact lowercase names because Linux is case-sensitive
Hosted panel Usually shown as .local/share/Euro Truck Simulator 2/ Panel console for launch errors, file manager for logs and uploaded packages

The lines starting with [MP] are the multiplayer lines worth reading. They tell you where startup stopped, whether the server obtained a search ID, what player limit it is actually using, and why a session closed. That is far more useful than guessing from what the session browser does or does not show.

Use this order every time:

  1. Read server.log.txt from the latest start.
  2. Decide the stage: no start, invisible, visible but no joins, or closed mid-session.
  3. Change one thing that matches that stage, then restart and read the new log again.
  4. Keep the last working server_config.sii and packages pair so you can roll back cleanly; proper game server backups save a lot of wasted time here.

Match your symptom to the files worth opening first.

Which file to open first, by problem
ProblemServer logServer configPackage pairPlayer configPorts / host PC
Server will not startYesYesYesNoNo
Runs, but missing from the browserYesPartlyNoPartlyYes
Listed, but players cannot joinYesPartlyYesPartlyNo
Search ID changes every restartYesYesNoNoNo
Drops mid-sessionYesNoNoNoYes
Server log = server.log.txt. Server config = server_config.sii. Package pair = server_packages.sii and server_packages.dat. Player config = each player’s config.cfg.
Partly in server_config.sii = the port settings, password, max_players and server_logon_token lines.
Partly in player config = g_max_convoy_size, which every player must raise before they can find or join a server above 8 players.
The log is always the first stop. The other columns tell you which file the log is most likely pointing at.

If the server will not start

Server packages file not found

If the log shows this, the server has no map, DLC or mod description to referee against, so it cannot build a session at all:

<ERROR> [MP] Error: Server packages file not found. This is required to load proper map, DLCs and mods

This happens because the dedicated server does not hold game files or Workshop items. Its only knowledge of world content comes from the exported packages pair. If either file is missing, uploaded to the wrong folder, mixed from different exports, or named with the wrong case on Linux, startup fails.

  1. Start the game client on your PC and load into the world so the map is actually loaded.
  2. Enable the console in the game home folder config.cfg with uset g_console "1".
  3. Open the console with the ~ key.
  4. Run export_server_packages.
  5. Take both server_packages.sii and server_packages.dat from Documents\Euro Truck Simulator 2\.
  6. Upload both as a matching pair into the server home folder, the same folder that contains server_config.sii.

The pair rule matters. The .sii describes the content and the .dat is the data partner from that same export. Mixing files from different exports gives the server the wrong picture of your current setup. ETS2 and ATS packages are also different, so do not swap them between games.

If you moved the home folder, point the server there as well. On Windows that is -homedir "path"; on Linux use XDG_DATA_HOME. If you redirect the game home folder for exports but leave the server reading the default location, the files exist but the server still cannot see them.

Linux SteamAPI_Init failed

On Linux without a Steam client, this error means the server cannot find the Steam library it needs for server login:

[S_API FAIL] SteamAPI_Init() failed; unable to locate a running instance of Steam, or a local steamclient.dll.

The fix works because it supplies steamclient.so where the server expects it. Use the shipped launch script first, because it is there to start the server with the right environment. If you need the manual fix, create the link below:

ln -s steamcmd/linux64/steamclient.so ~/.steam/sdk64/steamclient.so

On Linux the executable is bin/linux_x64/eurotrucks2_server, but the issue is not the executable itself. It is the missing Steam runtime library next to it.

One broken line in server_config.sii

server_config.sii is plain text. A missing quote or a malformed line can stop startup before the server reaches multiplayer initialisation. That is why keeping a known-good copy matters: when the server fails after an edit, compare the current file to the last working version first.

Packages from the wrong build or the wrong game

Packages exported from an old build describe old content. Packages from the other game describe the wrong content entirely. In both cases the server is being asked to validate a world state that does not match the current ETS2 build, so startup or joining will fail until you export fresh ETS2 packages from the updated game client.

If the server runs but nobody can see it

The session browser is filled by Steam through the dedicated ports, not through the virtual ports. That means the browser path depends on public reachability, while the direct search ID can still work behind NAT because players search for the session explicitly instead of waiting for Steam to list it.

Setting Default Forward it? What it does
connection_virtual_port 100 No Virtual connection port inside the game; allowed range 100-200
query_virtual_port 101 No Virtual query port inside the game; allowed range 100-200
connection_dedicated_port 27015 Yes, TCP and UDP Physical port used by the Steam game server API
query_dedicated_port 27016 Yes, TCP and UDP Physical query port used for browser listing; for LAN it must be in the range 27015-27020

If you self-host, a public IP or working port forwarding is required for the browser listing. If you cannot forward ports, the server may run perfectly but remain absent from the public list because Steam cannot query it through those dedicated ports.

The direct fallback is the search ID printed at startup:

Session search id: 85568392925767505/101

Players search for the number before the slash in the Convoy browser. The /101 part is the query virtual port. If that line exists in the log, the server has reached multiplayer startup; the problem is then browser visibility, not basic startup.

Also check filters. The browser can hide the server if the player has a name filter, password filter, or the default mod filter excludes it. A server with mods_optioning: true is only found when the player allows optional-mod servers in the filter.

The diagram shows why a server can be perfectly joinable by search ID and still missing from the list.

Two ways to reach an ETS2 dedicated server
Listed in the session browser
Convoy session browser
filled by
Steam game server API
27015 and 27016, TCP + UDP
needs
A public IP or
forwarded ports
Found by search ID
Player types the number
from the server log
direct search
Session search id
85568392925767505/101
works
Even behind NAT,
with no forwarding
Inside the session
connection_virtual_port 100
query_virtual_port 101
are
Virtual ports in the 100–200 range:
never forwarded
The dedicated server does no NAT punching, so the browser path fails behind a router you cannot forward, while the search ID path keeps working.
A server that friends can join by search ID but cannot see in the list has a listing problem on 27015/27016, not a broken server.

If the search ID changes every restart

That happens when the server logs in with an anonymous Steam account. Anonymous login is enough to run the dedicated server, but not enough to keep a persistent server identity, so favourites break and the search ID changes after each restart.

The proper fix is a game server logon token in server_config.sii. The token must be created for the base game app ID 227300, not the dedicated server app ID 1948160, and the Steam account creating it must own the game.

  1. Open the Steam game server token management page while logged into a Steam account that owns ETS2.
  2. Create a token for app ID 227300.
  3. Paste that token into server_config.sii as server_logon_token.
  4. Restart the server and confirm in the new log that startup reaches the search ID line again.

A token for the wrong game makes Steam refuse the login. Tokens can also lose validity; if the token shows struck through on the Steam page, replace it. If you run more than one instance at the same time, each one needs its own ports and its own token so Steam can treat them as separate servers.

lobby_name: "My Convoy"
password: "your_password"
max_players: 8
connection_virtual_port: 100
query_virtual_port: 101
connection_dedicated_port: 27015
query_dedicated_port: 27016
server_logon_token: YOUR_TOKEN_HERE
moderator_list: 1
moderator_list[0]: 7656119XXXXXXXXXX

If players see a red icon or cannot join after an update

After a patch, build lock is the first thing to suspect. The browser compares what the server advertises against the player’s game build and content state. A red icon means the player cannot join because the session is full, or the map or game version differs. Green means they can join. Orange means only mods are missing, which is a different problem.

Follow this order after every update so the server and packages describe the same build:

After every ETS2 patch: the safe update order
1. Update the game
Let Steam finish updating ETS2 on the PC you export from.
Same branch as your players
2. Update the server
Run app_update 1948160 in SteamCMD, or restart with auto-update on.
SteamCMD never updates on its own
3. Export fresh packages
Load into the map in the updated game, then run the export command in the console.
Wait for map mods to update first
4. Upload the pair and restart
Upload both package files together, then read the new server log.
Look for the search ID line
The export always comes last, so the packages describe the same build the server and players are running.

Skipping a step, or doing them out of order, is how you end up with a server on the new build advertising packages from the old one.

If you use SteamCMD, update manually. It does not auto-update the server:

steamcmd +login anonymous +app_update 1948160 validate +quit

You do not need to own the game for this, so anonymous login is fine. Many hosting panels update the server on restart when auto-update is switched on. Either way, the server files and the exported packages have to come from the same current build, which is why the export always comes last.

Branch mismatch also blocks joining. A player on the public beta cannot join a release server, and a player or server left on an older temporary branch cannot join the other side unless both are on that same branch. Map mods are the first things to break after major updates, so if your convoy depends on them, wait for those updates before exporting new packages.

Mod and DLC problems in one place

Keep this short rule in mind: orange icon means missing mods, not a version lock. The sync window handles that part, but only if the server’s package export actually matches the current mod set. When a Workshop mod updates on players’ PCs, the server still advertises the old version until you re-export and re-upload both package files, because the dedicated server cannot use the Steam client or access the Workshop itself.

DLC is similar but not identical. Players do not need DLC just to join Convoy, yet they cannot see or drive in DLC map areas they do not own. A mod that depends on a DLC effectively forces that DLC on every player because the mod cannot be activated without it. For the full load-order, sync-window and optional-mod process, use our guide to installing mods on an ETS2 server.

Bigger convoys, moderators, passwords and messages

More than 8 players cannot join

There are three settings to line up. The server advertises the limit in server_config.sii with max_players, the dedicated server itself must allow the larger convoy in config_ds.cfg with g_max_convoy_size, and every player must also set g_max_convoy_size in their own Documents\Euro Truck Simulator 2\config.cfg with the game closed, or in the console. Since 1.50, the limit can go up to 128.

This catches people because client and server both enforce convoy size. If the server advertises a larger lobby but a player’s own client still has the lower size, they may fail to find it or fail to join it even though the browser listing exists.

The log helps here too. Until the server-side config_ds.cfg is raised, it warns:

[MP] Warning: Proper player limit exceeded.

Once it is set correctly, the log reports the actual limit in use, for example:

[MP] Maximum number of players: 32

Moderators are assigned by Steam64 ID, then applied on restart

Because the dedicated server has no interface, you cannot promote moderators while it is running. Add Steam64 IDs in server_config.sii, make sure the count matches the number of entries, then restart. The server reads that list at startup and promotes those players automatically when they join.

Moderator commands are chat-based: /set_time HH:MM, /set_rain_factor 0-1 and /help.

Password and welcome message limits

lobby_name, description and password are limited to 63 characters, while welcome_message is limited to 127. If a change appears not to work, check both the edit itself and the required restart. Also note that friends_only and show_server are not used for dedicated servers, so changing them will not solve visibility problems.

If the server shuts down mid-session or crashes

When a running session closes, read the final lines of server.log.txt before anything else. This known pattern means the server lost its Steam connection:

[MP] Steam disconnected
[MP] Session closure requested (reason - 33).
[MP] Session closing

The fix works because it removes the interruption, not because of any game setting. If the host machine sleeps or the internet drops, the Steam link breaks and the session closes. Stopping the machine from sleeping, or moving the server to an always-on host, avoids that class of failure because the server process keeps its network presence continuously. If you are still weighing home hosting against renting, our guide to self-hosting a game server covers the practical trade-offs.

If the server actually crashes, use server.crash.txt together with the last lines of server.log.txt. One without the other often hides the real sequence.

Do not misread player performance as a server fault. Lower FPS in Convoy than in single-player is normal because the player’s PC has to render more player trucks. If someone reports poor framerate but the server stays up and the log is clean, the bottleneck is usually on the client side.

AI traffic is a session setting, not a crash fix. traffic: true keeps AI traffic on and traffic: false turns it off; SCS ships max_vehicles_total: 100, max_ai_vehicles_player: 50 and max_ai_vehicles_player_spawn: 50 as the defaults. Leave those alone while you are chasing a fault, so you are only ever changing one thing at a time.

ETS2 server problems: symptom, cause and first fix

Use this as a quick triage after you read the latest log. The decision flow below starts with the single most useful question: did startup reach the search ID line?

ETS2 server problem: check in this order
Something is wrong with your ETS2 Convoy server
Does server.log.txt show the “Session search id” line?
No
Startup problemFix the last [MP] error: missing packages pair, steamclient.so on Linux, or a broken server_config.sii line.
Yes
Does the server appear in the Convoy session browser?
No
Listing problemForward 27015 and 27016 on TCP and UDP, check the optional-mod and name filters, and join by search ID meanwhile.
Yes
Is the server icon green for your friend?
No
Red or orangeRed: update game, server and packages to the same build and branch. Orange: missing mods, use the sync window.
Yes
Do players get in and stay connected?
No
Drops outLook for “Steam disconnected” and reason 33, stop the host sleeping, and read server.crash.txt.
Yes
Add a server_logon_token so the search ID stays the same after restarts
Each question rules out one stage. Most problems stop at the first or second question.
Symptom Likely cause First fix
Server process stops during startup Broken server_config.sii Restore the last working config and re-check your latest edit
Log shows packages file not found Missing or misplaced packages pair Export fresh packages and upload both files to the home folder
Linux startup fails before multiplayer Missing steamclient.so Use server_launch.sh or create the Steam library link
No search ID line in the log Startup never reached multiplayer initialisation Fix the last error earlier in the log before looking at ports
Search ID exists but server is absent from browser Dedicated ports not reachable Forward 27015 and 27016 on TCP and UDP, or use direct search
Friends can join by ID but not find it normally NAT or browser filter issue Check port forwarding, then name, password and optional-mod filters
Search ID changes every restart Anonymous Steam login Add a valid server_logon_token made for app ID 227300
Red icon after a patch Server and players on different builds or branches Update server, export fresh packages, and match the same branch on both sides
Orange icon Missing mods Use the sync window, then re-export packages if mods were updated
More than 8 players still cannot join g_max_convoy_size not set everywhere Raise it in server config_ds.cfg and on every player’s client
Moderators not promoted Wrong Steam64 IDs or list count mismatch Fix the entries in server_config.sii and restart
Session closes with reason - 33 Steam connection lost Stop the host machine sleeping and check internet stability

Fix it yourself or move to a host

If the problem is local file handling, updates or exports, fixing it yourself is usually straightforward. If the problem is sleep states, unreachable ports or keeping a Convoy available all day, hosting off your own PC removes the weak point. When you compare options, think about uptime first and server location and ping second, then check our ETS2 server hosting comparison if you want a short list.

Situation Best choice Why
Home PC sleeps or is shut down often Move to a host An always-on machine avoids the Steam disconnect and session closure pattern
You cannot forward ports Move to a host The browser needs the dedicated ports reachable
You want a private convoy only on occasion Keep self-hosting The dedicated server is free and the log-driven fixes are manageable
You want a session available all day Move to a host The dedicated session keeps running with no players online, which suits permanent hosting
You run frequent mod changes Either works The real requirement is a clean update routine and fresh package exports
You need more than 8 players reliably Either works, but be stricter with config Player-side and server-side convoy size must both match every time
Ready to stop fighting with ports and uptime?

If your logs keep pointing back to sleep states, unreachable dedicated ports or the hassle of keeping a Convoy online, compare managed options with clear file access and restart tools.

Compare the best ETS2 server hosts

ETS2 server troubleshooting FAQ

Why is my ETS2 dedicated server not showing in the session browser?

The most common cause is that the dedicated ports are not reachable, so Steam cannot query the server for the browser list. Check that connection_dedicated_port 27015 and query_dedicated_port 27016 are forwarded on both TCP and UDP if you self-host. If the log shows a search ID, friends can still try direct search even when the browser listing fails.

Why does my ETS2 server say server packages file not found?

The dedicated server has no game files, no DLC files and no Workshop access, so it relies entirely on server_packages.sii and server_packages.dat. Export both from the updated game client while the map is loaded, then upload the pair into the server home folder. On Linux, make sure the file names stay exactly lowercase.

Why does my ETS2 server’s search ID change every restart?

That happens when the server uses anonymous Steam login, which does not keep a persistent server identity. Add a valid server_logon_token created for app ID 227300 in server_config.sii. If the token is invalid or made for the wrong game, replace it.

Why can’t my friends join my ETS2 server after an update?

Usually the game build, server build and exported packages no longer match. Update the game client, update the dedicated server with SteamCMD, load into the updated game, export fresh packages, upload them and restart. If anyone is on a different branch, including the public beta, they still will not be able to join.

How do I get more than 8 players on an ETS2 Convoy server?

Raise max_players in server_config.sii, set g_max_convoy_size in the server’s config_ds.cfg, and make sure every player sets g_max_convoy_size on their own client as well. Since 1.50 the limit can go up to 128, but every side must agree. The server log will warn if the proper limit has not been applied on the server side yet.

More ETS2 server help

The host comparison, the mods guide and the hosting basics that matter most for a Convoy server.

File names, log messages and settings follow SCS Software’s dedicated server documentation and the server_config.sii defaults it ships, as of November 2026. Game updates can add settings or change defaults, and host panels label folders, ports and restart buttons in their own way, so follow your host’s current panel where it differs.

Similar Posts