A console player types the six digits, the game thinks about it for twenty seconds, and then it fails. That's what "Valheim join code not working" looks like from the sofa, and it's nearly always one of six things. Or the code isn't showing anywhere. Or it worked last night and now it doesn't. The fix for the most common one takes about ten seconds: get the current code from the server, because the old one is dead.
What the join code actually is
When a Valheim server starts with crossplay on, it registers itself with PlayFab (Microsoft's backend) and PlayFab hands it a six-digit session code. That code is the address for anyone who can't type an IP and port: Xbox, PlayStation 5, Switch 2 and Game Pass on PC. The server prints it once it's registered, in a line like this:
Session "Odin's Rest" registered with join code 665832
Two things about that line matter more than anything else in this article. The code belongs to the session, so it changes on every start. And it doesn't exist until the world has loaded and registration has finished, which is a minute or two after the server says it's up.
On our panel, the code is on the Join your server card on the Overview tab whenever Crossplay is on. If you'd rather see it in context, the Console tab has the live output, and searching it for "join code" lands on the line above. Steam players never need it. Give them the address from the strip at the top of the page instead.
The empty one at startup is normal
Early in the boot you'll see a line that looks broken:
New session server "Odin's Rest" that has join code , now 0 player(s)
Nothing after "join code". People read that as a failure and restart, which starts the whole wait again. It isn't a failure. The server announces the session before PlayFab has replied, so the slot is empty for a moment, and the registered with join code line follows shortly after. Wait for that one. If it never comes, keep reading, because that's the real problem.
"Couldn't resolve join code" and the other failures
Whatever the exact wording on your platform (I've seen it reported as "couldn't resolve join code", "invalid code" and a plain "Failed to connect"), the game is saying the same thing: it asked PlayFab about that code and got nothing useful back. Work down this list. It's in the order we see them in tickets.
1. The code is stale
Someone restarted the server, a scheduled restart ran, an update kicked in. Any of those and the code your friends have is gone for good, and the failure they get looks exactly like a network problem, which is why nobody suspects the code. Copy the current one and send it again.
2. The server isn't running with crossplay
A server without the -crossplay argument sits on Steam's networking, never talks to PlayFab, and never gets a code. There's nothing to resolve. Check the log for Register PlayFab server and registered with join code. Neither there? Crossplay is off, whatever the settings screen claims. Turn it on and restart, because the argument is only read at launch.
For servers with us that's the Crossplay checkbox in the General group on the Manage tab. It's off by default. Save, restart, then give the server a couple of minutes before you go looking for the code.
3. The player's own crossplay toggle is off
The joining player needs crossplay enabled in their game as well as the server. On Xbox, Iron Gate's own FAQ puts it plainly: "If you can't find the option to enable crossplay, you might need to adjust your parental control settings." A child or family account with online multiplayer restricted has the toggle greyed out or missing entirely. The code fails for them and works for everyone else. Not a server problem. The fix is in the family settings of whoever manages the account.
4. Version mismatch
Since 1.0 this has become the big one. The client and the server have to be on the same build. Valheim 1.0 launched on 9 September 2026 as 1.0.7, hotfix 1.0.10 went to every platform on 11 September, and 1.0.12 followed the same day on Steam only. A player on a newer build than the server gets bounced. Some platforms show a clear "incompatible version" dialog; others just fail, and people blame the code.
The server doesn't update itself when it restarts. It stays on whatever build it installed until you explicitly update it. With us, the Game updates card on the Overview tab says whether a newer build is waiting, and the Update button installs it. The full version dance is in the troubleshooting guide.
5. Switch 2 and the 1.0.12 hotfix
Hotfix 1.0.12 couldn't be uploaded to Switch 2. In Iron Gate's words, "crossplay is not currently supported between Switch 2 and other platforms" until they sort it. So a Switch 2 player entering the code for a 1.0.12 server will fail no matter how many times they retype it. Iron Gate's workaround is for the server and its Steam players to drop back to the previous build on the default_old branch, which keeps Switch 2 in and pushes PlayStation and Xbox players out. Not a great trade. If your group decides to go that way, open a ticket and we'll move the server back. The crossplay and join codes post covers who can play with whom right now.
6. PlayFab is having a bad evening
Occasionally the backend itself falls over, and when it does every crossplay server on the internet stops resolving codes at the same time. The tell is in the server log:
PlayFab create lobby failed: /Lobby/CreateLobby: ServiceUnavailable
Or the empty has join code , line printing over and over as the server re-registers on a loop. Restarting doesn't help, because the problem isn't on your machine. During a PlayFab outage nobody gets in, Steam players included, because on a crossplay server the IP is only a lookup key for the relay. Wait it out, or if the group is all Steam anyway, turn crossplay off and restart to sidestep PlayFab completely.
Things that look like a join code problem but aren't
The password. The code gets a console player to the server; the password gets them in. It's case sensitive, at least five characters, and it can't appear inside the world name or seed, or the server refuses to start at all. If the code resolves and the join still fails, check what they typed.
Whitelist. One entry in the whitelist and the server turns into an allowlist. Console players are Xbox_ IDs or the new V_ format, and if theirs isn't listed they're refused after the code resolves fine. The lists live on the Players tab and apply on the next start.
Mods. Client-side mods lock console players out regardless, because they can't install any. Crossplay doesn't stop BepInEx loading, so a modded server can happily be crossplay and still be unjoinable from a console. Client-side vs server-side mods explains which mods are safe.
Public IP versus join code for PC players. Someone on Steam can join a crossplay server by IP and port exactly as before. If a Steam player is fighting with the code, tell them to stop and use the address.
When to open a ticket
If the registered with join code line never appears after five minutes with Crossplay on, or the server is stuck re-registering and no outage is on, send us the Console output and the time it happened. That's usually enough to find it in one go. Everything else about getting people in is in the can't connect guide, and the Valheim server hosting page has the rest.