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

  1. Widen the date range or drop city/tag/eventType filters to confirm data exists
  2. Try a different date known to have events
  3. Retry later if events may be published closer to the query date
  4. 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

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


AI-assisted analysis of jackwener/OpenCLI@49907e53dc (2026-08-29). Data as JSON: /api/errors/304f02ef4e506dee. Report an issue: GitHub.