louislam/uptime-kuma · warning · Error

Server not found on Steam

Error message

Server not found on Steam

What it means

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.

Source

Thrown at server/monitor-types/steam.js:89

        });

        if (res.data.response && res.data.response.servers && res.data.response.servers.length > 0) {
            heartbeat.status = UP;
            heartbeat.msg = res.data.response.servers[0].name;

            try {
                heartbeat.ping = await this.ping(
                    monitor.hostname,
                    PING_COUNT_DEFAULT,
                    "",
                    true,
                    monitor.packetSize,
                    PING_GLOBAL_TIMEOUT_DEFAULT,
                    PING_PER_REQUEST_TIMEOUT_DEFAULT
                );
            } catch (_) {}
        } else {
            throw new Error("Server not found on Steam");
        }
    }

    /**
     * Builds the Steam API server filter.
     * @param {string} hostname Steam server hostname or IP address.
     * @param {number} port Steam server port.
     * @returns {Promise<string>} Steam API addr filter.
     */
    async buildServerFilter(hostname, port) {
        const resolvedHostname = await this.resolveSteamHostname(hostname);
        return `addr\\${resolvedHostname}:${port}`;
    }

    /**
     * Resolves hostnames before passing them to Steam's addr filter.
     * @param {string} hostname Steam server hostname or IP address.
     * @returns {Promise<string>} IP address accepted by the Steam API.

View on GitHub (pinned to 6b5ea01557)

Solutions

  1. Confirm the server is actually online and visible in the Steam server browser for the same IP:port.
  2. 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).
  3. Verify the resolved public IP matches what the server advertises; avoid hostnames that resolve to a private/loopback IP.
  4. Wait a few minutes for a freshly started server to register with the Steam master server, then retry.
Defensive patterns

Strategy: try-catch

Validate before calling

function hasSteamServer(payload) {
  return payload && payload.response && Array.isArray(payload.response.servers) && payload.response.servers.length > 0;
}

Type guard

function isServerList(data) { return data?.response?.servers instanceof Array; }

Try / catch

if (!hasSteamServer(res.data)) { heartbeat.status = DOWN; heartbeat.msg = "Server not found on Steam"; return; }

Prevention

When it happens

Trigger: 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.

Common situations: 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.

Related errors


AI-assisted analysis of louislam/uptime-kuma@6b5ea01557 (2026-08-12). Data as JSON: /api/errors/05a5c71d25c89c9c. Report an issue: GitHub.