-
Notifications
You must be signed in to change notification settings - Fork 97
Description
Problem
Russian players frequently get stuck on "Загрузка контента сервера…" when connecting to any server. This is a universal problem across all servers, not server-specific. VPN resolves it.
Root cause
robust-builds.cdn.spacestation14.com resolves to 185.93.3.244 (Datacamp/AS60068, Madrid). This IP is being blocked or throttled by Russian ISP-level filtering (TSPU). launcher-data.cdn.spacestation14.com resolves to the same IP and is equally affected.
The existing fallback (robust-builds.fallback.cdn.spacestation14.com, Contabo 156.67.24.95) works for some Russian ISPs but not all.
Evidence
Tested via check-host.net from 3 Russian nodes on 2025-02-25:
robust-builds.cdn.spacestation14.com (primary, Datacamp):
| Node | ISP | Result |
|---|---|---|
| ru1, Moscow | AS14576 | Connection timed out (25s) |
| ru2, Moscow | AS210644 | Connection timed out (20s) |
| ru3, St. Petersburg | AS210644 | OK, 2.15s |
robust-builds.fallback.cdn.spacestation14.com (fallback, Contabo):
| Node | ISP | Result |
|---|---|---|
| ru1, Moscow | AS14576 | Connection timed out (25s) |
| ru2, Moscow | AS210644 | OK, 0.78s |
| ru3, St. Petersburg | AS210644 | OK, 0.62s |
For comparison, Cloudflare-hosted endpoints (hub, auth) work from all 3 nodes. The v0.31.0 auth/hub fallback is working. The problem is specifically the Datacamp IP.
Suggested fix
Add a Russian-hosted mirror (e.g. Selectel, Yandex Cloud) as an additional fallback in ConfigConstants.cs for RobustBuildsBaseUrl and LauncherDataBaseUrl. The UrlFallbackSet mechanism already supports this — it just needs a third URL.
Side note (localization)
In the Russian locale, both connecting-update-status-downloading-engine and connecting-update-status-downloading-content are translated to the same string "Загрузка контента сервера…", making it impossible for players to tell which step is actually hanging.