An "incompatible version" or "invalid version" error means the client's game version does not match the server's. The game compares the version (V 3.4.0), not the build number, so a client on the V3.4.0 b10 update still joins a server on V3.4.0 b6 or b9. Since V3.4.0 went stable on 26 October 2026 the single biggest cause is a version mismatch: Steam has updated the players to V3.4.0 and the server is still on V3.3.0, or one side is pinned to an older build (V2.6, V3.0, V3.1, V3.2 or V3.3) and the other is not. Both the client and the server must run the same version, which in practice means the same Steam branch, and Steam's build IDs differ between branches even when both say they are "updated."
V3.4.0 has been the current stable build on the default install (Default Public Version) since 26 October 2026. V3.3, V3.2, V3.1, V3.0 and V2.6 are older lines. A client on one line cannot join a server on another, in either direction. There is no cross-branch compatibility, so "we are both updated" is not enough: both sides have to be on the same branch. A player who keeps 3.3 by pinning v3.3.0 cannot join a V3.4.0 server until they switch back to Default Public Version, and the reverse.
The fix is to pick one branch and put everyone on it. Which branch depends on what you are running.
latest_experimental as a public branch (on 29 October it still carried V3.4.0 b6), so there is nothing to test. When TFP open the next one, move a server there only if you mean to test it, and only with every player on the same branch.If you are a player who opted into a branch and can no longer join your usual server, match the server rather than the other way round.
Steam only offers the branches The Fun Pimps keep published, and old point releases do get removed. Read the live list yourself rather than trusting a guide, including this one: in Steam, right-click the game, Properties, Betas. For a dedicated server, steamcmd +login anonymous +app_info_update 1 +app_info_print 294420 +quit prints them under branches.
Checked on 3 November 2026 for the dedicated server (app 294420):
| Branch | Last updated | Use |
|---|---|---|
public | 2 Nov 2026 | Default. V3.4.0, the b10 update since 2 Nov 2026. Use this unless an overhaul says otherwise. |
latest_experimental | Not listed | Opt-in testing. Not a public branch as of 3 Nov 2026 (it carried V3.4.0 b6 until at least 29 Oct), so it cannot be picked without an access code; when TFP open the next experimental, client and server must both be on it. |
v3.4.0, v3.3.0, v3.2.0 | Nov to Aug 2026 | Pinned 3.x point releases. V3.1.0 and V3.0.x are no longer public branches, so they cannot be picked without an access code. |
v2.6 | 1 Apr 2026 | The only surviving 2.x branch. Earlier 2.x point releases have been removed, so a server pinned to one of those has nowhere to return to and must move to v2.6 or forward. |
v1.4 | Apr 2025 | The 1.0 line. |
alpha21.2, alpha20.7, and older | 2024 and earlier | Where the long-running overhauls pin. |
| Cause | What it looks like | Fix |
|---|---|---|
| Server behind on version | Server is on an older version than up-to-date clients (3.3 against 3.4); everyone gets kicked. An older build of the same version (V3.4.0 b6 against b9) still lets players in, because only the version is compared. | Restart the server (managed hosts update on start) or force a fresh Steam update server-side. See the server-side fix below. |
| Client behind | One or two players cannot join while others can. | Update the game in Steam, restart Steam, and verify the install. Confirm the client is on the same branch as the server. |
| Branch mismatch (stable vs experimental) | Client and server are both "fully updated" but still incompatible. | Put both sides on the same branch. This is the dominant cause during the 3.0 launch. |
On managed hosts with auto-update enabled, the server runs its Steam update automatically on every start or restart, so there is generally no separate "update game files" button - the update happens before the server boots. That means the fix for a server that is behind is almost always: restart it, and make sure the branch is set correctly first. Restarting a server that is configured for an experimental branch will keep it on that branch, so check the branch setting before you blame the restart. Once the server is on its intended branch, every player simply matches their client to that branch in Steam.
Sometimes a server flips branches (for example off an experimental branch back to default) but stays stuck on the old build, so players keep getting a version mismatch even after a restart. This is a stale Steam PICS (product info) cache: SteamCMD can report "Success! App already up to date" while silently keeping the old build. Force a fresh product-info refresh by adding +app_info_update 1:
steamcmd +login anonymous +app_info_update 1 +app_update 294420 validate +quit
A few important notes:
+app_info_update 1, SteamCMD can say "Success, No Error" while keeping the old build, which is exactly why players still see a version mismatch after what looked like a successful update.-beta flag (or -beta ""). To hold a server on V3.3 for a mod that has not moved, use -beta v3.3.0 and have every player pick the same branch in Steam. Only if you deliberately want to test a newer experimental build, add the beta flag: +app_update 294420 -beta latest_experimental validate.On top of the branch and build checks, every mod version must match on the server and the client. A mismatched or missing mod produces the same incompatible-version result. Update or remove mismatched mods so both sides load an identical mod set. Note that most V2.6 mods do not load on V3.0, so plan mod updates around your branch move.
Almost always a version mismatch. V3.4.0 has been the current stable build since 26 October 2026, and older lines such as V3.3, V3.2, V3.1, V3.0 and V2.6 are not cross-compatible with it. If your client is on a different branch from the server, you get an incompatible version error even when both say they are updated. Put both the client and the server on the same Steam branch. If the server itself flipped branches but stayed on an old build, force a fresh Steam update server-side with steamcmd +login anonymous +app_info_update 1 +app_update 294420 validate +quit.
No. There is no cross-branch compatibility in either direction. A client on an older line cannot join a V3.4.0 server, and a client on an opt-in experimental branch cannot join a server on the default branch when the two carry different versions; a different build number of the same version, such as V3.4.0 b6 and b9, still connects. Set your client to the same branch as the server in Steam, which for almost every server is Default Public Version.
For the default stable branch, where V3.4.0 is, update the dedicated server (appid 294420) with no beta flag: steamcmd +login anonymous +app_info_update 1 +app_update 294420 validate +quit. Only add -beta latest_experimental if you deliberately want to test a newer experimental build. On managed hosts with auto-update enabled, set the branch and restart the server, which updates before it boots. Then have every player switch their client to the same branch. To go back to stable, update with no -beta flag.
This is a stale Steam PICS cache. SteamCMD can report Success while silently keeping the old build, so players keep getting a version mismatch. Add +app_info_update 1 to force a fresh product-info refresh: steamcmd +login anonymous +app_info_update 1 +app_update 294420 validate +quit. Use appid 294420 (the dedicated server), not 251570 (the game store appid).
Steam's build IDs differ between the stable and experimental branches even when each side is fully updated on its own branch. Being updated is not the same as being on the same branch. Confirm both the client and the server are on the same Steam branch (both on Default Public Version, or both on the same opt-in branch).
+app_info_update 1