{"record":{"id":"05a5c71d25c89c9c","repo":"louislam/uptime-kuma","slug":"server-not-found-on-steam","errorCode":null,"errorMessage":"Server not found on Steam","messagePattern":"Server not found on Steam","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"warning","filePath":"server/monitor-types/steam.js","lineNumber":89,"sourceCode":"        });\n\n        if (res.data.response && res.data.response.servers && res.data.response.servers.length > 0) {\n            heartbeat.status = UP;\n            heartbeat.msg = res.data.response.servers[0].name;\n\n            try {\n                heartbeat.ping = await this.ping(\n                    monitor.hostname,\n                    PING_COUNT_DEFAULT,\n                    \"\",\n                    true,\n                    monitor.packetSize,\n                    PING_GLOBAL_TIMEOUT_DEFAULT,\n                    PING_PER_REQUEST_TIMEOUT_DEFAULT\n                );\n            } catch (_) {}\n        } else {\n            throw new Error(\"Server not found on Steam\");\n        }\n    }\n\n    /**\n     * Builds the Steam API server filter.\n     * @param {string} hostname Steam server hostname or IP address.\n     * @param {number} port Steam server port.\n     * @returns {Promise<string>} Steam API addr filter.\n     */\n    async buildServerFilter(hostname, port) {\n        const resolvedHostname = await this.resolveSteamHostname(hostname);\n        return `addr\\\\${resolvedHostname}:${port}`;\n    }\n\n    /**\n     * Resolves hostnames before passing them to Steam's addr filter.\n     * @param {string} hostname Steam server hostname or IP address.\n     * @returns {Promise<string>} IP address accepted by the Steam API.","sourceCodeStart":71,"sourceCodeEnd":107,"githubUrl":"https://github.com/louislam/uptime-kuma/blob/6b5ea0155793e666666745fb8d6fef1e829543a2/server/monitor-types/steam.js#L71-L107","documentation":"Thrown when the Steam Web API responded successfully but res.data.response.servers was missing or empty. The addr filter (built from the resolved IP and port) matched zero registered game servers, so the target is either offline, not registered with the master server, or the hostname/port pair is wrong.","triggerScenarios":"Produced after a 2xx response from IGameServersService/GetServerList/v1 when the 'response.servers' array is absent or length 0. The filter 'addr\\\\<ip>:<port>' produced no hits.","commonSituations":"Game server is offline or has not yet registered with the Steam master server; wrong port (query port vs game port mismatch common for srcds); hostname resolved to a different IP than the server's public bind (NAT, CDN, dual-stack); filter escaping issue; brand-new server not yet propagated to the master list.","solutions":["Confirm the server is actually online and visible in the Steam server browser for the same IP:port.","Use the server's query port, which may differ from the game/client port (e.g. for srcds the query port is often the game port +0 but check your setup).","Verify the resolved public IP matches what the server advertises; avoid hostnames that resolve to a private/loopback IP.","Wait a few minutes for a freshly started server to register with the Steam master server, then retry."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"function hasSteamServer(payload) {\n  return payload && payload.response && Array.isArray(payload.response.servers) && payload.response.servers.length > 0;\n}","typeGuard":"function isServerList(data) { return data?.response?.servers instanceof Array; }","tryCatchPattern":"if (!hasSteamServer(res.data)) { heartbeat.status = DOWN; heartbeat.msg = \"Server not found on Steam\"; return; }","preventionTips":["Confirm the server is online and visible in the Steam server browser first.","Use the server's query port, not necessarily the client port.","Verify the resolved IP matches the server's advertised public IP."],"tags":["steam","game-server","api","filter"],"backgroundTag":null,"analyzedSha":"6b5ea0155793e666666745fb8d6fef1e829543a2","analyzedAt":"2026-08-12T23:42:12.959Z","schemaVersion":2},"datasetVersion":"2026-08-13T04:17:16.726Z"}