Windrose Server Not Showing or No Invite Code
A Windrose dedicated server does not behave like a traditional game server that advertises a predictable public address and expects players to type in an IP and port. The official Windrose dedicated-server flow is built around an invite code. That means the first real sign of a healthy server is not a listening socket you test by hand, but a complete server boot that produces the right metadata and a code players can actually use. When users say their Windrose server is "not showing," the failure usually falls into one of four buckets: the server never finished booting, the wrong files were launched, the server generated metadata but clients are on the wrong version, or the operator is looking for the wrong join signal. As of April 15, 2026, Windrose is live in Early Access and the official dedicated-server guide confirms that the current upstream flow is Windows-based and invite-code driven. That combination is unusual enough that many admins misdiagnose healthy-but-unfamiliar behavior as a broken server.
Most Important Rule
If there is no valid invite code in the console output or in ServerDescription.json, do not treat the server as ready. In Windrose, a missing code usually means the boot process is incomplete, the metadata files are wrong, or the server and client versions do not line up yet.
What a healthy Windrose startup should give you
| Signal | Why it matters | What to do if it is missing |
|---|---|---|
| Server process stays alive | Confirms the runtime did not crash immediately | Check launch path, server runtime, and startup logs |
ServerDescription.json exists and updates | Confirms the server metadata layer is running | Re-check working directory and write permissions |
| Invite code appears in console or metadata | This is the actual user-facing join token | Do not invite players until this exists |
| Client and server are on the same build | Windrose updates can invalidate older server states | Update both sides before deeper troubleshooting |
| Players can use the code from the in-game connect screen | Confirms the server is not just booted, but reachable | Retest with one clean client before blaming networking |
Step 1: Make sure you are judging the right thing
The most common early mistake is treating Windrose like a browseable public server list game. The official guide does not tell players to hunt through a server browser for a hostname. It tells them to start the server, locate the invite code, and then use the game client's connect flow with that code. That changes the whole troubleshooting mindset. If you open the panel, see the service is running, and immediately wonder why the game is not showing a classic public listing, you may be solving the wrong problem. First decide which symptom you actually have:
- The server never fully starts and closes or crashes.
- The server process stays alive, but no invite code is generated.
- The invite code exists, but players fail to join.
- The invite code worked before, but stopped working after a patch or config change.
Those are different failure modes. Lumping them together wastes time. Treat the invite code as the hinge point: if it does not exist, focus on boot and metadata; if it exists but fails, focus on version match, client behavior, and network traversal.
Step 2: Confirm the server writes the expected metadata files
The official dedicated-server guide points operators toward ServerDescription.json and WorldDescription.json. Those files are not side details. They are core proof that the server root, world binding, and save metadata are all aligned. If your Windrose service manager says the process is up but these files never appear or never refresh, the join flow will remain broken because the server has not finished exposing the information the client depends on. In practice, this check is more useful than staring at raw process lists.
Start by shutting the server down cleanly. Then verify that the server is launching from the intended dedicated-server directory, not from some mixed client folder or outdated copy. Restart it and watch for three things:
- Does
ServerDescription.jsonexist in the directory you expect? - Does its modification time change when the server starts?
- Does it contain a fresh invite code after the boot sequence settles?
If the answer to any of these is no, the problem is earlier than player connectivity. Either the server cannot write to its working path, the wrong files were launched, or the runtime exited before registration completed.
Operational habit: when diagnosing Windrose, always capture the metadata file timestamps before and after a restart. It is a fast way to tell the difference between "the server booted badly" and "the server never touched the correct save root at all."
Step 3: Wait long enough for the first startup to finish
Windrose operators coming from older survival games sometimes expect an instant join artifact. Early Access dedicated servers often need a little time on first boot to build or validate world state, especially when the install is new, the world has just been created, or files were copied in from another machine. If you kill and restart the service too quickly because the code did not appear within a few seconds, you can turn a slow first startup into a loop of never letting initialization complete. This is especially true on hosted environments where the game is running through a Windows-oriented upstream server path rather than a native Linux release.
A good rule is to let the first clean boot settle before you intervene. Watch the console. If logs continue moving and the process remains stable, give it time. Only call it stuck when output has clearly stopped and no metadata update has happened after a reasonable window. On production hosts, tie this to objective signals: metadata write time, console quiet period, and whether a clean stop still works. Do not treat "it is taking longer than Valheim" as evidence of failure. Windrose is not Valheim.
Step 4: Check version match before deeper networking work
As of launch week, Windrose has already started the normal Early Access patch cycle. The official guide is explicit that the game client and dedicated server should be kept on matching versions. This matters more than many admins expect because an invite code can exist while the practical join still fails. In that situation the server may look healthy from the outside but remain unjoinable for clients on a different build.
If players report that the code is accepted but the join does not complete, stop and answer these questions first:
- Was the dedicated server updated after the latest game hotfix?
- Did every player fully restart Steam so the client actually pulled the latest build?
- Was the server restarted after the update, or is it still serving an older in-memory runtime?
This is one of the reasons structured update windows matter. Admins who patch the files but do not restart cleanly often end up testing a half-updated state and chasing the wrong cause.
Step 5: Rebuild the invite-code path from scratch
If the server is running but the code path is ambiguous, rebuild it in the most boring way possible. Stop the service. Back up the current metadata and save files. Start the server in foreground mode if your environment allows it, so you can read the code directly from the live output rather than trusting stale panel state. Then validate the code using one updated client before involving the whole group. This is the fastest route to isolating whether the problem is server generation, panel presentation, or player join behavior.
Clean recovery checklist
- Stop the server completely.
- Back up
ServerDescription.json,WorldDescription.json, and the save directory underR5/Saved/SaveProfiles/Default/. - Restart in a mode where you can watch the console.
- Confirm the metadata file timestamp changes.
- Read the newly generated invite code from console or metadata.
- Test that code from one fully updated client.
- Only after a clean single-client join, share it with the broader crew.
Step 6: Do not over-focus on fixed public ports
The official Windrose guidance describes a NAT punch-through based connection model with dynamically handled connectivity rather than the classic "open UDP port and hand out the address" pattern. That means some instincts from older dedicated-server titles are less useful here. Yes, network problems can still exist, but the first-line diagnosis should not be a long port-forwarding rabbit hole unless you have already verified that the server is generating a valid invite code and that updated clients still cannot join with it. If the code does not exist, networking is not your first blocker. If the code exists and the client is outdated, networking is not your first blocker either.
Use the upstream join model in the order the developers designed it. Generate the code. Validate the code. Then move outward.
Step 7: Watch for bad state after config edits
Windrose's metadata-driven setup means hand-edited config mistakes can create weird half-valid states. A server name change may be harmless, but a broken JSON file, an interrupted write, or a mismatched world description can lead to a boot that keeps a process alive while the server never becomes truly usable. If the problem started immediately after manual edits, compare the current metadata files to a known-good backup rather than trying to guess field by field. Early Access formats can evolve quickly, and restoring last-known-good state is usually safer than clever editing.
Good rollback order:
1. Stop server
2. Restore metadata backup
3. Restore matching world save if needed
4. Start server
5. Verify new invite code
6. Test with one client
Step 8: Separate "server invisible" from "players joined the wrong world"
Another subtle Windrose problem is that users sometimes frame a world mismatch as a missing server. Because the join method is code-based and world persistence matters, confusion around the active world can look like a visibility failure. If the code changes after a rebuild, a crew may still be trying an older join token or expecting a previous world state that is no longer mounted. When an admin says "the server disappeared," ask whether the code changed, whether the same save was restored, and whether the correct metadata files were preserved. In practice, world continuity mistakes can feel exactly like discovery failures to the player.
When to stop troubleshooting and rebuild
Early Access admin time is expensive. If you have already verified the dedicated-server package is current, the metadata files are questionable, and multiple restarts still fail to produce a stable code path, a clean rebuild is often faster than endless surgery. Preserve the save data first, then rebuild the server root, restore the world, and retest. Because Windrose stores meaningful state in both descriptive metadata and the actual world save path, rebuilds are safe only when you carry both together. Reinstalling just the binaries but forgetting the corresponding world files usually creates more confusion, not less.
Where should I look first if players say the server is not showing?
Look for the invite code in ServerDescription.json or the live server console. That is the primary join artifact in the current Windrose model.
What if the process is running but there is still no invite code?
Assume the server is not fully initialized yet. Check the working directory, metadata file timestamps, permissions, and whether the runtime is actually the dedicated-server package you intended to launch.
Can a patch break the join flow even if the code still exists?
Yes. The official guidance says the game and dedicated server versions should match. A stale server can keep running while updated clients fail to join correctly.
Should I start with router and port troubleshooting?
No. Windrose currently uses an invite-code and NAT punch-through model, so boot completeness and version matching are usually more important first checks.
Need the code surfaced cleanly instead of scraping logs by hand? Windrose server hosting on Supercraft keeps the server metadata persistent and exposes the invite-code join flow in the control panel.