1. Read the exact message
Valheim's localization file carries one line per error. These are the English texts the client shows when a join fails, with the usual cause behind each, as the rest of this guide reads them:
| Message | Usual cause | Section |
|---|---|---|
| Incompatible version | The server and the game are on different versions. | 2 |
| You're running an older version of Valheim that is incompatible with this server. Please update your game to join this server. | The player's game is behind the server. | 2 |
| This server is running an older version of Valheim that is incompatible with your version. | The server is behind the player's game. | 2 |
| Failed to connect | Nothing answered at that address, port or join code. | 3 |
| Couldn't resolve join code | The crossplay backend has no session under that code. | 3 |
| Wrong password | The password typed does not match the server's. | 4 |
| Server full | Every slot is taken. | 5 |
| Banned | The player is on the ban list, or a permitted list exists without them. | 5 |
| The server owner does not allow users from other platforms than their own to play on their server. | The server runs on the Steam backend and the player is not on Steam. | 6 |
| Disconnected | The connection was lost after joining. | 7 |
2. Incompatible version
Every Valheim server prints its version on startup. On the current build the line reads:
Valheim version: l-1.0.20 (network version 41)
The second number is the one that has to match. When a client with a different network version tries to join, the server logs a "Network version check" line naming both versions, and the client sees one of the version messages above. Since the 1.0 release on 9 September 2026 Iron Gate have shipped patches 1.0.10, 1.0.12, 1.0.14, 1.0.15, 1.0.16, 1.0.17 and 1.0.20, so a server left running through October is several versions behind a client that updates itself.
- Update the server. The dedicated server is a separate Steam tool with its own updates. Install them through Steam or SteamCMD, then start the server again. Iron Gate's manual reminds you that the start script "will be reset each time it is updated in Steam", which is why they recommend editing a copy of it.
- Platforms update at different times. Patch 1.0.17 says "the patch will require a few days to get uploaded to all platforms", and 1.0.20 notes "a small delay with Mac App Store for this patch, which means that crossplay will not work between Mac App Store players and players on other platforms until it has caught up." A friend on a console or the Mac App Store may be a version behind for a few days.
- Check the branch. Iron Gate run a Public Test Branch on Steam, and their Crossplay FAQ links to the opt-in instructions. A server and a client on different branches are on different builds, so keep both on the same one.
- Old 1.0 clients. Patch 1.0.14 "Disabled biomedata caching, fixing a bug where the cache could end up in an invalid state, making it impossible to join remote servers." A player who still cannot join after everyone else can should update past that patch first.
3. Failed to connect
Which fix applies depends on which backend the server runs on, because the two reach players in different ways.
Steam backend: open both ports
Without the -crossplay argument "the Steam backend is used, which means only Steam users can see and join the Server." Iron Gate's manual is emphatic about the ports: "the most important thing is to make sure that the Server uses a Port Range that has access to the Internet", and "Valheim uses the specified Port AND specified Port+1. Default Ports are 2456-2457." A forward for 2456 alone is not enough. The shipped start_server.sh still carries an older comment asking for 2456-2458; opening the third port does no harm. For the router side, see the port forwarding guide. Players reach the server from the in-game list or, with -public 0, "only joinable via the 'Join IP'-button" with the public address and port.
Crossplay backend: no forwarding, but no local addresses
With -crossplay the server "transmits data via a relay server and therefore does not require Port Forwarding". Players connect "using the public IP address and port number, a join code or via the server list, however it's not possible to connect using a local IP address or a loopback IP address." So a "Failed to connect" on a crossplay server from the same house usually means someone typed a LAN address. Two more details from the manual: the port "is still used to distinguish between multiple servers on the same public IP address", and several servers on one port from one machine each need their own -instanceid "to ensure that they get unique PlayFab IDs".
The join code is the simplest route. The Crossplay FAQ says that when you host a dedicated server "you'll be able to see a 'Join code' by entering the pause menu", and the friend presses "Add server" under Join Game and pastes it. The server log prints the same code when it registers, in a line of this shape:
Session "My server" registered with join code 822445
A code that returns "Couldn't resolve join code" belongs to a session that is not registered right now. In our test runs a server restarted with the same name, port and world came back with the same join code, so the code itself does not go stale; the server is down, still starting, or was started under a different name or port.
Is the server actually up?
"When the Server program shows the message 'Game server connected' the Server is up and running, ready to accept connections." Until that line appears there is nothing to connect to. If you stop a server, do it with Ctrl+C in its window: "If you close it by clicking the X in the window frame the Server may keep running in the background". In practice a leftover process of that kind is the first thing to look for when a restarted server never reaches that line.
4. Wrong password
Two rules are printed in the server's own start script: "Minimum password length is 5 characters" and the "Password cant be in the server name." The script states the rules without saying what happens when they are broken, so treat them as hard: pick a password of at least five characters that does not appear anywhere in the server name, set it in your copy of the start script, restart, and give players exactly that string.
5. Server full and Banned
"Server full" needs no diagnosis. "Banned" has two causes, both in the three permission files Iron Gate describe: adminlist.txt, bannedlist.txt and permittedlist.txt, "located in the default save path". That path is %USERPROFILE%\AppData\LocalLow\IronGate\Valheim on Windows and ~/.config/unity3d/IronGate/Valheim on Linux unless -savedir moved it.
- A player listed in
bannedlist.txtis banned, andUnban PLAYERNAMEin the F5 console removes them. - The permitted list is a whitelist: "adding a person on the permitted list will ban everyone else from the server." One friend added to it locks out everyone who is not.
Entries are Platform User IDs, which "can be obtained from the Server log or from within the game using the F2 panel" and follow "the format [Platform]_[User ID] (case sensitive)". Hotfix 1.0.12 fixed "a problem with banlist and whitelist that made them only compatible with new IDs (e.g. V_123456789) even though they should work with old IDs too (e.g. Steam_123456789)", so both forms are accepted on a current server. The admin lists guide walks through the files.
6. Players on other platforms
The platform message in the table means the server is on the Steam backend. Iron Gate's answer is the -crossplay argument, which "lets users from any platform join". Console players also need crossplay on at their end: the Crossplay FAQ says an Xbox player can join a dedicated server "provided that both your Xbox and the server have crossplay enabled", and that the option may need a parental control change. The crossplay guide covers the switch and the join codes in detail.
7. Disconnected after joining
"Disconnected" is not a refusal, it is a lost connection. In practice, check the server first: when every player drops at the same moment the server itself stopped or restarted, and its log says why; when one player drops while the rest stay on, the fault is on their route to the server. Patch 1.0.14 also "Fixed a bug where terrain modifications by players or monsters could lead to performance and portal issues in multiplayer", so a server or client behind that patch is worth updating before chasing the network.
Where ForgeWorld Gaming fits
On a ForgeWorld Gaming Valheim server the Startup tab holds the arguments this guide talks about: Server Name, Server Password, which the panel keeps between 5 and 20 characters, World Name, Public Server and Enable Crossplay. Crossplay is on by default, so a new server runs on the crossplay backend and the Console tab prints its join code when the session registers, in the line quoted above. Turn Enable Crossplay off and the server moves to the Steam backend, where only Steam players can join, through the address on the Console tab. The game port and the port above it are both assigned to the server, so the port+1 rule is already met. While the Auto Update variable is on, each start checks Steam for a newer server build, so a restart after an Iron Gate patch brings the server to the current version; a test server we started on 2026-10-19 reported Valheim version: l-1.0.20 (network version 41). Leave the Beta Branch field empty unless every player is on that branch. The permission files adminlist.txt, bannedlist.txt and permittedlist.txt sit in .config/unity3d/IronGate/Valheim on the Files tab, with the worlds under worlds_local. Last checked 2026-10-19.
Prefer renting to keeping your own server machine online? ForgeWorld Gaming currently offers Valheim Standard: 3, 5, 10 player slots at CA$15.99–CA$23.49/month. Hosted in Iowa, United States. Prices are in Canadian dollars, with no setup fee and cancel any time. Your server is set up automatically after payment. Continue to secure billing, Valheim · Dedicated server, CA$15.99 / month (Standard, 3 slots), or compare Valheim plans.