Fake IP not released after game exits

オープン
#465 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 2 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
1週間以上
初心者へのやさしさ
12/100
issue の種類
バグ
明瞭さ
説明が足りない
活発さ
活発
技術スタック
cpp, csharp
領域
networking

調査の方向性

The report describes a Steam client bug: after a Fake IP is allocated, BeginAsyncRequestFakeIP keeps failing on relaunch until Steam restarts, with the cause logged in console_log.txt. The reproduction is a C# probe in an external gist that calls SteamAPI_Init, InitRelayNetworkAccess, and GetFakeIP/BeginAsyncRequestFakeIP, and nothing in this repository's source is named as the fix location. Done would mean the repro is confirmed and the report is routed to the Steamworks team, since the code involved is in the closed-source Steam client.

索引モデルが issue の本文から書いたものです。

説明

Apologies I know this repo isn't technically related to the Steam client's SDR/FakeIP networking, but I see a couple of older tickets mentioning it so this seems like the best place to post about it where someone involved with it might see it.


So after my game successfully allocates a Fake IP via GetFakeIP/BeginAsyncRequestFakeIP and then exits normally, any more re-launches of that same App ID get a k_EResultFail from BeginAsyncRequestFakeIP for as long as the Steam client is running. Steam's console_log.txt shows this error message:

src/clientdll/clientnetworkingapi.cpp (2809) : YldRequestFakeIP called again.  Not allowed!

Restarting the Steam client fixes it for one launch, so does launching another game in between.

I've reproduced this on both Windows x64 and macOS arm64, Steam client version 1793235415

Steps to reproduce it:

  1. Restart Steam
  2. Run a minimal program that calls SteamAPI_Init, InitRelayNetworkAccess, InitAuthentication, requests a fake ip via GetFakeIP/BeginAsyncRequestFakeIP and wait for the result. The first time will give you a k_EResultOK with a valid Fake IP address and port. Then exit the program if its still running.
  3. Re-run the program, but this time you'll get k_EResultFail and the line in the console_log.txt from above.
  4. From now on it will keep failing with k_EResultFail

To clear it you'll need to either restart Steam or launch any other game that goes through the SteamAPI_Init.

Here's a .NET 10 C# project using Steamworks.NET that I've reproduced the error with: https://gist.github.com/philo23/f3ebcbe8aaf14df6f49a0822f8843534

It'll write a probe.log file into bin/Debug/net10.0/ along side the dll

$ echo 480 > steamapp_id.txt

$ dotnet bin/Debug/net10.0/Probe.dll
[2026-10-31 22:49:48.331Z pid=7012] PROBE start
[2026-10-31 22:49:48.348Z pid=7012] PROBE launched by Steam=False; SteamAppId=-; SteamGameId=-
[2026-10-31 22:49:48.348Z pid=7012] PROBE cwd=/tmp/steam-fakeip-probe; args=
[S_API] SteamAPI_Init(): Loaded '/Users/redacted/Library/Application Support/Steam/Steam.AppBundle/Steam/Contents/MacOS/steamclient.dylib' OK.
Setting breakpad minidump AppID = 480
SteamInternal_SetMinidumpSteamID:  Caching Steam ID:  7656119XXXXXXXXXX [API loaded no]
[2026-10-31 22:49:48.405Z pid=7012] PROBE init=k_ESteamAPIInitResult_OK;
[2026-10-31 22:49:48.406Z pid=7012] PROBE app=480
[2026-10-31 22:49:48.410Z pid=7012] PROBE auth=k_ESteamNetworkingAvailability_Attempting
[2026-10-31 22:49:48.412Z pid=7012] PROBE initial=k_EResultNoMatch; IPv4 present=False; port present=False
[2026-10-31 22:49:48.412Z pid=7012] PROBE begin=True
[2026-10-31 22:49:48.418Z pid=7012] SDK k_ESteamNetworkingSocketsDebugOutputType_Verbose: Got cert for steamid:7656119XXXXXXXXXX from Steam
[2026-10-31 22:49:48.419Z pid=7012] SDK k_ESteamNetworkingSocketsDebugOutputType_Msg: Certificate expires in 40h18m at 1793632101 (current time 1793486987), will renew in 38h18m
[2026-10-31 22:49:48.441Z pid=7012] SDK k_ESteamNetworkingSocketsDebugOutputType_Warning: SDR network config fetch attempt #1 failed.  HTTP 504.  .  Trying again.
[2026-10-31 22:49:48.566Z pid=7012] SDK k_ESteamNetworkingSocketsDebugOutputType_Msg: Got SDR network config.  Loaded revision 1793064244 OK
[2026-10-31 22:49:48.566Z pid=7012] SDK k_ESteamNetworkingSocketsDebugOutputType_Msg: Performing ping measurement
[2026-10-31 22:49:48.566Z pid=7012] SDK k_ESteamNetworkingSocketsDebugOutputType_Msg: SDR RelayNetworkStatus:  avail=Attempting  config=OK  anyrelay=Attempting   (Performing ping measurement)
[2026-10-31 22:49:48.566Z pid=7012] SDK k_ESteamNetworkingSocketsDebugOutputType_Msg: AuthStatus (steamid:7656119XXXXXXXXXX):  OK  (OK)
[2026-10-31 22:49:48.652Z pid=7012] SDK k_ESteamNetworkingSocketsDebugOutputType_Verbose: Communications with routing cluster 'fra' established.
[2026-10-31 22:49:48.664Z pid=7012] SDK k_ESteamNetworkingSocketsDebugOutputType_Verbose: Communications with routing cluster 'sto2' established.
[2026-10-31 22:49:48.690Z pid=7012] PROBE callback=k_EResultOK; IPv4 present=True; port present=True
[2026-10-31 22:49:48.713Z pid=7012] PROBE final=k_EResultOK; IPv4 present=True; port present=True
[2026-10-31 22:49:48.741Z pid=7012] PROBE shutdown

$ dotnet bin/Debug/net10.0/Probe.dll
[2026-10-31 22:49:52.799Z pid=7077] PROBE start
[2026-10-31 22:49:52.815Z pid=7077] PROBE launched by Steam=False; SteamAppId=-; SteamGameId=-
[2026-10-31 22:49:52.815Z pid=7077] PROBE cwd=/tmp/steam-fakeip-probe; args=
[S_API] SteamAPI_Init(): Loaded '/Users/redacted/Library/Application Support/Steam/Steam.AppBundle/Steam/Contents/MacOS/steamclient.dylib' OK.
Setting breakpad minidump AppID = 480
SteamInternal_SetMinidumpSteamID:  Caching Steam ID:  7656119XXXXXXXXXX [API loaded no]
[2026-10-31 22:49:52.867Z pid=7077] PROBE init=k_ESteamAPIInitResult_OK;
[2026-10-31 22:49:52.868Z pid=7077] PROBE app=480
[2026-10-31 22:49:52.870Z pid=7077] PROBE auth=k_ESteamNetworkingAvailability_Attempting
[2026-10-31 22:49:52.871Z pid=7077] PROBE initial=k_EResultNoMatch; IPv4 present=False; port present=False
[2026-10-31 22:49:52.872Z pid=7077] PROBE begin=True
[2026-10-31 22:49:53.080Z pid=7077] SDK k_ESteamNetworkingSocketsDebugOutputType_Verbose: Got cert for steamid:7656119XXXXXXXXXX from Steam
[2026-10-31 22:49:53.080Z pid=7077] SDK k_ESteamNetworkingSocketsDebugOutputType_Msg: Certificate expires in 40h18m at 1793632101 (current time 1793486991), will renew in 38h18m
[2026-10-31 22:49:53.084Z pid=7077] PROBE callback=k_EResultFail; IPv4 present=False; port present=False
[2026-10-31 22:49:53.105Z pid=7077] PROBE final=k_EResultFail; IPv4 present=False; port present=False
[2026-10-31 22:49:53.108Z pid=7077] PROBE shutdown
主要言語
C++
スター
10k
フォーク
767
PR マージ指標
30日以内にマージされた PR はありません

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

ValveSoftware/GameNetworkingSockets のほかの issue

ValveSoftware/GameNetworkingSockets の issue をすべて見る

似ている issue

C++ の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。