jackwener/OpenCLI · warning · EmptyResultError
EMPTY_RESULT
EMPTY_RESULT
Error message
No Huodongxing event cards were found. The page may be empty.
What it means
The extractor signalled code 'EMPTY_RESULT': the events page loaded but no Huodongxing event cards matched. This is an EmptyResultError with a hint that the page may legitimately be empty.
Source
Thrown at clis/huodongxing/events.js:300
);
}
if (payload?.code === 'RATE_LIMIT') {
throw new CommandExecutionError(
payload.message || 'huodongxing events was rate limited by www.huodongxing.com',
payload.hint || 'Wait a few minutes and retry from a real browser session.',
);
}
if (payload?.code === 'TRANSIENT_ACCESS') {
throw new CommandExecutionError(
payload.message || 'huodongxing events page returned a temporary busy/access page',
payload.hint || 'Wait and retry from the same browser session.',
);
}
if (payload?.code === 'INVALID_LIMIT') {
throw new ArgumentError(payload.message || 'huodongxing limit must be a positive integer <= 50');
}
if (payload?.code === 'EMPTY_RESULT') {
throw new EmptyResultError(
'huodongxing events',
payload.hint || 'No Huodongxing event cards were found. The page may be empty.',
);
}
throw new CommandExecutionError(
payload?.message || 'huodongxing events returned malformed extraction data',
payload?.hint || 'Huodongxing extraction did not return the expected structured payload.',
);
}
export function extractEventRows(limit = 20) {
return requireExtractionRows(extractEventRowsPayload(limit));
}
async function extractEventRowsFromPage(page, limit) {
return page.evaluate(`(${extractEventRowsPayload.toString()})(${limit})`);
}
View on GitHub (pinned to 49907e53dc)
Solutions
- Widen the date range or drop city/tag/eventType filters to confirm data exists
- Try a different date known to have events
- Retry later if events may be published closer to the query date
- If the page clearly shows cards but this fires, report a selector/markup regression
Defensive patterns
Strategy: fallback
Type guard
const isEmptyResultError = e => e instanceof EmptyResultError || /No Huodongxing event cards/.test(e?.message ?? '');
Try / catch
try { return extractEventRows(limit); } catch (e) { if (e instanceof EmptyResultError) return []; /* empty is a valid answer */ throw e; } Prevention
- Widen date ranges or relax filters if you expect results
- Treat empty as data, not failure — return [] to callers
- Cross-check with the site in a browser when a non-empty result is expected
- Avoid over-narrow city/tag/eventType combinations
When it happens
Trigger: Querying a date range/city/tag/eventType combination with no events; a genuinely empty events listing; markup change removing card selectors (less likely than an empty result).
Common situations: Narrow date filters around holidays; city names with no scheduled events; eventType=2 on days with no online events.
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 coaches for ${fromCity} to ${toCity} on ${date}
- No trains for ${fromName} to ${toName} on ${date}
- No attractions for "${query}"
- No timetable for ${from} to ${to} (${country})
- No airport transfers for ${city} (${airport})
AI-assisted analysis of jackwener/OpenCLI@49907e53dc (2026-08-29).
Data as JSON: /api/errors/304f02ef4e506dee.
Report an issue: GitHub.