14 KiB
Steamworks 未初始化
- 分类:blocking
- Issue 数:5
0.7.3d最近一天次数:23- 设备数合计:5
- 报告生成:2026-06-08 12:00:23
Issue
| Issue | 类型 | 次数 | 设备 | 最近上报 | 消息 |
|---|---|---|---|---|---|
| 6824d854c4dbc78d5d41cc0cba4081fb | UnityLogError | 2 | 1 | 2026-06-08 02:53:02 | EventManager Publish listener failed: System.InvalidOperationException: Steamworks is not initialized. at Steamworks.InteropHelp.TestIfAvailableClient () [0x00000] in <00000000000000000000000000000000>:0 at Steamworks.SteamMatchmaking.AddRequestLobbyListDistanceFilter (Steamworks.ELobbyDistanceFilter eLobbyDistanceFilter) [0x00000] i… |
| 341f705a3c788ba90fbf37396a4c9470 | InvalidOperationException | 12 | 1 | 2026-06-08 02:53:01 | Steamworks is not initialized. |
| 8605ccfc9311840c54f1e112669c6c4a | UnityLogError | 4 | 1 | 2026-06-08 02:52:15 | [UIOutsideMultiplay] LeaveRoom exception: System.InvalidOperationException: Steamworks is not initialized. at Steamworks.InteropHelp.TestIfAvailableClient () [0x00000] in <00000000000000000000000000000000>:0 at Steamworks.SteamMatchmaking.AddRequestLobbyListDistanceFilter (Steamworks.ELobbyDistanceFilter eLobbyDistanceFilter) [0x00000] in <00000000000000000… |
| 589a482d3aa15b5adaf39c75d3caa9de | InvalidOperationException | 3 | 1 | 2026-06-08 02:51:54 | Steamworks is not initialized. |
| ee679306da516a599fea816f2ff6653f | UnityLogError | 2 | 1 | 2026-06-08 02:51:50 | EventManager Publish listener failed: System.InvalidOperationException: Steamworks is not initialized. at Steamworks.InteropHelp.TestIfAvailableClient () [0x00000] in <00000000000000000000000000000000>:0 at Steamworks.SteamMatchmaking.AddRequestLobbyListDistanceFilter (Steamworks.ELobbyDistanceFilter eLobbyDistanceFilter) [0x00000] i… |
设备上下文
6824d854c4dbc78d5d41cc0cba4081fb
- 样本 CrashId:
dc5a7d5390154232ae8c317e6f75d529 - 样本 DeviceId:
d8-43-ae-40-07-48 - CrashSight 附带日志文件:
False
最终上报内容:
UnityLogError
EventManager Publish<ShowUIOutsideMultiplay> listener failed: System.InvalidOperationException: Steamworks is not initialized.
at Steamworks.InteropHelp.TestIfAvailableClient () [0x00000] in <00000000000000000000000000000000>:0
at Steamworks.SteamMatchmaking.AddRequestLobbyListDistanceFilter (Steamworks.ELobbyDistanceFilter eLobbyDistanceFilter) [0x00000] in <00000000000000000000000000000000>:0
at bag.jdo (Steamworks.ELobbyDistanceFilter a, System.Int32 b, System.String c, System.String d, System.Boolean e) [0x00000] in <00000000000000000000000000000000>:0
at TH1_UI.View.Outside.UIOutsideMultiplayView.dio () [0x00000] in <00000000000000000000000000000000>:0
at TH1_UI.View.Outside.UIOutsideMultiplayView.bei () [0x00000] in <00000000000000000000000000000000>:0
at TH1_UI.View.Outside.UIOutsideMultiplayView.geh (TH1_Core.Events.ShowUIOutsideMultiplay a) [0x00000] in <00000000000000000000000000000000>:0
at eqy`1[c].fab () [0x00000] in <00000000000000000000000000000000>:0
at eqy`1[c].ezp () [0x00000] in <00000000000000000000000000000000>:0
at ern.gyd (TH1_Core.Events.ShowUIOutsideMultiplay a) [0x00000] in <00000000000000000000000000000000>:0
at erk.fcv[c] (c a) [0x00000] in <00000000000000000000000000000000>:0
at UnityEngine.Events.InvokableCall.Invoke () [0x00000] in <00000000000000000000000000000000>:0
at UnityEngine.Events.UnityEvent.Invoke () [0x00000] in <00000000000000000000000000000000>:0
at UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1] functor) [0x00000] in <00000000000000000000000000000000>:0
at UnityEngine.EventSystems.StandaloneInputModule.ReleaseMouse (UnityEngine.EventSystems.PointerEventData pointerEvent, UnityEngine.GameObject currentOverGo) [0x00000] in <00000000000000000000000000000000>:0
at UnityEngine.EventSystems.StandaloneInputModule.ProcessMousePress (UnityEngine.EventSystems.PointerInputModule+MouseButtonEventData data) [0x00000] in <00000000000000000000000000000000>:0
at UnityEngine.EventSystems.StandaloneInputModule.ProcessMo
...
同设备最近 ERROR 上报序列:
| 时间 | Issue | 类型 | 消息 |
|---|---|---|---|
| 2026-06-08 04:58:25 | 01eaa6aefd9162eccc930c2450a63779 | ||
| 2026-06-08 04:57:42 | 83c9b6c1eea0ae92d6b66badbaa27e7e | ||
| 2026-06-08 04:33:42 | 3bc5a22f6a9337370157faff19a8ca0c | ||
| 2026-06-08 04:15:17 | d116ee978d571e6e4e724c4960a72749 | ||
| 2026-06-08 04:15:16 | d88f95adc2574a43b1eeb055b13ac429 | ||
| 2026-06-08 04:15:15 | 014f2af002726c961daa88e566b11cfe | ||
| 2026-06-08 04:15:14 | 492047903afcb93f2596ccd48e815cce | ||
| 2026-06-08 04:15:10 | f42736b37a7704becb2a1a0dfbeeb8ce |
341f705a3c788ba90fbf37396a4c9470
- 样本 CrashId:
3e6389b4d15046859540940b92a7bc1e - 样本 DeviceId:
d8-43-ae-40-07-48 - CrashSight 附带日志文件:
False
最终上报内容:
InvalidOperationException
Steamworks is not initialized.
Steamworks.InteropHelp.TestIfAvailableClient () (at <00000000000000000000000000000000>.0)
Steamworks.SteamMatchmaking.AddRequestLobbyListDistanceFilter (Steamworks.ELobbyDistanceFilter eLobbyDistanceFilter) (at <00000000000000000000000000000000>.0)
bag.jdo (Steamworks.ELobbyDistanceFilter a, System.Int32 b, System.String c, System.String d, System.Boolean e) (at <00000000000000000000000000000000>.0)
TH1_UI.View.Outside.UIOutsideMultiplayView.dio () (at <00000000000000000000000000000000>.0)
Steamworks.InteropHelp.TestIfAvailableClient () (at <00000000000000000000000000000000>.0)
Steamworks.SteamMatchmaking.AddRequestLobbyListDistanceFilter (Steamworks.ELobbyDistanceFilter eLobbyDistanceFilter) (at <00000000000000000000000000000000>.0)
bag.jdo (Steamworks.ELobbyDistanceFilter a, System.Int32 b, System.String c, System.String d, System.Boolean e) (at <00000000000000000000000000000000>.0)
TH1_UI.View.Outside.UIOutsideMultiplayView.dio () (at <00000000000000000000000000000000>.0)
Steamworks.InteropHelp.TestIfAvailableClient () (at <00000000000000000000000000000000>.0)
Steamworks.SteamMatchmaking.AddRequestLobbyListDistanceFilter (Steamworks.ELobbyDistanceFilter eLobbyDistanceFilter) (at <00000000000000000000000000000000>.0)
bag.jdo (Steamworks.ELobbyDistanceFilter a, System.Int32 b, System.String c, System.String d, System.Boolean e) (at <00000000000000000000000000000000>.0)
TH1_UI.View.Outside.UIOutsideMultiplayView.dio () (at <00000000000000000000000000000000>.0)
InvalidOperationException
Steamworks is not initialized.
Steamworks.InteropHelp.TestIfAvailableClient () (at <00000000000000000000000000000000>.0)
Steamworks.SteamMatchmaking.AddRequestLobbyListDistanceFilter (Steamworks.ELobbyDistanceFilter eLobbyDistanceFilter) (at <00000000000000000000000000000000>.0)
bag.jdo (Steamworks.ELobbyDistanceFilter a, System.Int32 b, System.String c, System.String d, System.Boolean e) (at <00000000000000000000000000000000>.0)
TH1_UI.View.Outside.UIOutsideMultiplayView.dio () (at <00000000000000000000000000000000>.0)
同设备最近 ERROR 上报序列:
| 时间 | Issue | 类型 | 消息 |
|---|---|---|---|
| 2026-06-08 04:58:25 | 01eaa6aefd9162eccc930c2450a63779 | ||
| 2026-06-08 04:57:42 | 83c9b6c1eea0ae92d6b66badbaa27e7e | ||
| 2026-06-08 04:33:42 | 3bc5a22f6a9337370157faff19a8ca0c | ||
| 2026-06-08 04:15:17 | d116ee978d571e6e4e724c4960a72749 | ||
| 2026-06-08 04:15:16 | d88f95adc2574a43b1eeb055b13ac429 | ||
| 2026-06-08 04:15:15 | 014f2af002726c961daa88e566b11cfe | ||
| 2026-06-08 04:15:14 | 492047903afcb93f2596ccd48e815cce | ||
| 2026-06-08 04:15:10 | f42736b37a7704becb2a1a0dfbeeb8ce |
8605ccfc9311840c54f1e112669c6c4a
- 样本 CrashId:
f31dcb44222a498c839f0dfde39f2662 - 样本 DeviceId:
d8-43-ae-40-07-48 - CrashSight 附带日志文件:
False
最终上报内容:
UnityLogError
[UIOutsideMultiplay] LeaveRoom exception: System.InvalidOperationException: Steamworks is not initialized.
at Steamworks.InteropHelp.TestIfAvailableClient () [0x00000] in <00000000000000000000000000000000>:0
at Steamworks.SteamMatchmaking.AddRequestLobbyListDistanceFilter (Steamworks.ELobbyDistanceFilter eLobbyDistanceFilter) [0x00000] in <00000000000000000000000000000000>:0
at bag.jdo (Steamworks.ELobbyDistanceFilter a, System.Int32 b, System.String c, System.String d, System.Boolean e) [0x00000] in <00000000000000000000000000000000>:0
at TH1_UI.View.Outside.UIOutsideMultiplayView.dio () [0x00000] in <00000000000000000000000000000000>:0
at TH1_UI.View.Outside.UIOutsideMultiplayView.bei () [0x00000] in <00000000000000000000000000000000>:0
at TH1_UI.View.Outside.UIOutsideMultiplayView.cou () [0x00000] in <00000000000000000000000000000000>:0
at UnityEngine.Events.InvokableCall.Invoke () [0x00000] in <00000000000000000000000000000000>:0
at UnityEngine.Events.UnityEvent.Invoke () [0x00000] in <00000000000000000000000000000000>:0
at UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1] functor) [0x00000] in <00000000000000000000000000000000>:0
at UnityEngine.EventSystems.StandaloneInputModule.ReleaseMouse (UnityEngine.EventSystems.PointerEventData pointerEvent, UnityEngine.GameObject currentOverGo) [0x00000] in <00000000000000000000000000000000>:0
at UnityEngine.EventSystems.StandaloneInputModule.ProcessMousePress (UnityEngine.EventSystems.PointerInputModule+MouseButtonEventData data) [0x00000] in <00000000000000000000000000000000>:0
at UnityEngine.EventSystems.StandaloneInputModule.ProcessMouseEvent (System.Int32 id) [0x00000] in <00000000000000000000000000000000>:0
at UnityEngine.EventSystems.StandaloneInputModule.Process () [0x00000] in <00000000000000000000000000000000>:0
at UnityEngine.EventSystems.EventSystem.Update () [0x00000] in <00000000000000000000000000000000>:0
UnityEngine.Debug.LogError(Object)
TH1_UI.View.Outside.UIOutsideMultiplayView.cou()
Unity
...
同设备最近 ERROR 上报序列:
| 时间 | Issue | 类型 | 消息 |
|---|---|---|---|
| 2026-06-08 04:58:25 | 01eaa6aefd9162eccc930c2450a63779 | ||
| 2026-06-08 04:57:42 | 83c9b6c1eea0ae92d6b66badbaa27e7e | ||
| 2026-06-08 04:33:42 | 3bc5a22f6a9337370157faff19a8ca0c | ||
| 2026-06-08 04:15:17 | d116ee978d571e6e4e724c4960a72749 | ||
| 2026-06-08 04:15:16 | d88f95adc2574a43b1eeb055b13ac429 | ||
| 2026-06-08 04:15:15 | 014f2af002726c961daa88e566b11cfe | ||
| 2026-06-08 04:15:14 | 492047903afcb93f2596ccd48e815cce | ||
| 2026-06-08 04:15:10 | f42736b37a7704becb2a1a0dfbeeb8ce |
代码位置
Unity/Assets/Scripts\TH1_Logic\Editor\SteamEditorWindow.cs:168: if (InspectorUtils.InspectorButtonWithTextWidth("搜索")) lobby.SearchPublicLobbies();Unity/Assets/Scripts\TH1_Logic\Steam\SteamLobbyManager.cs:1152: public void SearchPublicLobbies(ELobbyDistanceFilter filter = ELobbyDistanceFilter.k_ELobbyDistanceFilterWorldwide,Unity/Assets/Scripts\TH1_UI\View\Outside\UIOutsideMultiplayView.cs:1977: _lobby.SearchPublicLobbies();
解码结论
5 个 Issue 合并为同一根因:联机大厅 UI 在 Steamworks 未初始化或未登录完成时仍调用大厅搜索,SteamLobbyManager.SearchPublicLobbies() 直接进入 SteamMatchmaking.AddRequestLobbyListDistanceFilter(),Steamworks C# 层抛出 InvalidOperationException: Steamworks is not initialized.。
解码后的主要链路:
TH1_Core.Managers.EventManager.Publish<ShowUIOutsideMultiplay>()->UIEventManagerBinder.HandleShowUIOutsideMultiplay()->ViewController._TryOpen()->UIOutsideMultiplayView.SetContent()->UIOutsideMultiplayView.SetNoRoom()/OnRefreshLobbyClicked()->SteamLobbyManager.SearchPublicLobbies()。- 关闭按钮也会触发同源链路:
UIOutsideMultiplayView.<OnInit>b__92_0()->LeaveRoom()->RefreshAll()->RefreshRoomInfo()->SetNoRoom()->OnRefreshLobbyClicked()。 - 直接异常上报和
EventManager Publish/LeaveRoom exception包装上报都落在同一个 Steamworks API 调用点。
代码定位:
Unity/Assets/Scripts/TH1_UI/View/Outside/UIOutsideMultiplayView.cs:323打开联机界面后无条件初始搜索。Unity/Assets/Scripts/TH1_UI/View/Outside/UIOutsideMultiplayView.cs:1415无房间状态下再次无条件搜索。Unity/Assets/Scripts/TH1_UI/View/Outside/UIOutsideMultiplayView.cs:1975的OnRefreshLobbyClicked()没有_lobby.IsInitialized()或 Steam 可用性守卫。Unity/Assets/Scripts/TH1_Logic/Steam/SteamLobbyManager.cs:1152的SearchPublicLobbies()没有调用已有的EnsureSteamReadyForLobbyAction()/TrySteamApi()保护,1158直接调用 Steamworks。
合并依据:所有 5 个 Issue 都在同一设备 d8-43-ae-40-07-48 的 2026-06-08 02:50:53 至 02:53:02 连续出现,样本栈都指向 SearchPublicLobbies() -> AddRequestLobbyListDistanceFilter()。后续同设备还有 P2P/ForceUpdate 诊断,但这些在该阻断样本之后出现,当前 API 样本不能证明它们是触发源。
建议聚焦:在 UI 搜索入口和 SteamLobbyManager.SearchPublicLobbies() 两层都做 Steam 初始化/登录/P2P ready 守卫;底层 Steam API 调用改走 TrySteamApi 或等价保护,失败时只刷新 UI 提示,不进入 CrashSight ERROR。这个根因还可能造成大厅打开、无房间刷新、自动刷新、关闭返回菜单时反复上报,并让玩家看到房间列表空白或无法刷新。
判断
这是阻断类,因为 CrashSight 行或 LogError 包装内容中存在真实异常类型、异常对象或调用栈;不是单纯业务状态诊断。
本批样本 hasLogFile=false,API 能拿到的是最终上报内容和同设备 ERROR 上报序列,不包含完整 Unity 运行日志;根因上下文按可见上报链路记录。
建议
优先按次数最高的 Issue 样本复现并修复;若同设备上报序列中出现更早的异常,应以更早异常作为源头处理。