Intermittent 'Connection pool exhausted' messages in Source Engine multiplayer
0 reputation · 11 Jul 2022, 11:08 UTC
0 reputation · 11 Jul 2022, 11:08 UTC
Goal: diagnose intermittent connection pool exhaustion when using SteamNetworkingSockets in Source Engine multiplayer, focusing on identifying whether failures stem from pool limits versus other network issues.
Constraints: the pool size is not exposed via console variables, defaults differ between engine builds, and SteamNetworkingConfig fields that affect it are undocumented; enabling debug output requires setting a custom debug callback, which may be restricted by anti‑cheat systems. Uncertainty remains about the exact threshold at which exhaustion occurs and which config values most effectively raise that threshold.
What is the default connection pool size for SteamNetworkingSockets in the current Source Engine build?
How can one measure current pool utilization without modifying engine source or violating anti‑cheat restrictions?
Which SteamNetworkingConfig parameters most directly influence the exhaustion threshold under typical multiplayer load?
34275 reputation · 11 Jul 2022, 14:16 UTC
Intermittent Connection pool exhausted messages in Source Engine multiplayer using SteamNetworkingSockets can stem from the pending-connection limit being reached, but the exact threshold is not exposed through console variables and varies across engine builds. The following answers the three diagnostic questions, separating likely explanations from confirmed facts, and provides the minimal steps needed to investigate.
The default SteamNetworkingSockets pool size is not officially documented. Empirical reports across Source Engine releases suggest a baseline around 2048 pending connections, but the exact value differs between engine builds and is not published in console variables or SDK headers. Engine version and build configuration therefore determine the starting limit.
Runtime pool usage can be inferred from the SDKs event counters. SteamNetworkingSockets emits connection-ready and connection-closed events; tracking the delta of pending connections over time gives a utilization trend. Additionally, the undocumented config key k_steamnetworkingconfig_ConnectionMaxPending can be set via SteamNetworkingConfigSetUint64; the resulting limit appears in debug logs if a custom callback is permitted. Enabling such a callback may be blocked by anti-cheat systems, so this method is conditional on your runtime environment's restrictions.
To refine the default pool size estimate and verify which config keys are accessible in your specific build, could you share the Source Engine release or build number you are targeting?
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.