jackwener/OpenCLI · warning · EmptyResultError
No map-pool rows found for team ${teamId}/${slug}
Error message
No map-pool rows found for team ${teamId}/${slug} What it means
After a successful parse, team-map-pool throws this EmptyResultError when the parsed row array is empty, meaning HLTV returned no map-pool statistics for the given team. The team exists but has no map records in the analyzed pool/window.
Source
Thrown at clis/hltv/team-map-pool.js:92
category: 'map',
key: mapName,
teamId: payload.teamId,
team,
record,
winRate,
totalRounds,
firstKillWinPct,
firstDeathWinPct,
pickPct,
banPct,
mapUrl: byMap.get(mapName)?.mapUrl ?? null,
});
}
return [...byMap.values()];
}, { base: BASE, teamId, slug });
if (!Array.isArray(rawRows)) throw new CommandExecutionError('hltv team-map-pool parser returned an unexpected shape');
if (rawRows.length === 0) throw new EmptyResultError('hltv team-map-pool', `No map-pool rows found for team ${teamId}/${slug}`);
const rows = rawRows.map((row) => {
const record = splitRecord(row.record);
const maps = record.wins === null ? null : (record.wins ?? 0) + (record.draws ?? 0) + (record.losses ?? 0);
return {
category: row.category,
key: row.key,
teamId: row.teamId,
team: row.team,
maps,
winMaps: record.wins,
lossMaps: record.losses,
winRatePct: parseNumber(row.winRate),
avgRoundDiff: null,
details: {
draws: record.draws,
totalRounds: parseNumber(row.totalRounds),
roundsPerMap: maps ? round(parseNumber(row.totalRounds) / maps) : null,View on GitHub (pinned to 49907e53dc)
Solutions
- Verify teamId and slug refer to the same, active team on HLTV
- Confirm the team's HLTV page shows map statistics manually
- Try a different/active team to validate the call path
- Catch EmptyResultError and report 'no map-pool data for this team'
Example fix
// before
await teamMapPool(page, { teamId: 12345, slug: 'wrong-slug' });
// after
await teamMapPool(page, { teamId: 12345, slug: 'correct-slug' }); // id and slug from the same team page Defensive patterns
Strategy: try-catch
Validate before calling
// confirm the team page has map stats before invoking
const teamUrl = `https://www.hltv.org/team/${teamId}/${slug}`;
// fetch teamUrl and ensure the stats/maps section exists Type guard
function isTeamRef(t) { return Number.isFinite(t?.teamId) && typeof t?.slug === 'string' && t.slug.length > 0; } Try / catch
try {
const pool = await teamMapPool(page, { teamId, slug });
} catch (err) {
if (err instanceof EmptyResultError) return { rows: [], note: 'no map-pool data for this team' };
throw err;
} Prevention
- Verify teamId and slug come from the same team page
- Skip known-empty targets (new rosters, inactive/academy teams)
- Manually confirm the team page shows map statistics when debugging
- Treat 'no map-pool data' as a valid domain answer
When it happens
Trigger: Calling with a teamId/slug of a team with no recorded map stats (new, inactive, or academy team); team page exists but the maps section is empty; wrong teamId/slug combo resolving to a page without map-pool data.
Common situations: Querying a newly formed roster with no official maps; dead/inactive team pages; mixing a teamId from one team with a slug from another so the page has no data; regional teams with sparse HLTV coverage.
Understand the failure class
Background: EmptyResultError / "no results found": when an API or scraper succeeds but returns zero rows — this error's family across 9 libraries.
Related errors
- No last encounter found for ${playerA.playerId} and ${player
- No shared map rows found for ${playerA.playerId} and ${playe
- No trains found from ${fromStation.name} to ${toStation.name
- NO_DATA
- No Wayback snapshots for "${target}".
AI-assisted analysis of jackwener/OpenCLI@49907e53dc (2026-08-29).
Data as JSON: /api/errors/1c523189069c32ec.
Report an issue: GitHub.