{"record":{"id":"304f02ef4e506dee","repo":"jackwener/OpenCLI","slug":"empty-result","errorCode":"EMPTY_RESULT","errorMessage":"No Huodongxing event cards were found. The page may be empty.","messagePattern":"No Huodongxing event cards were found\\. The page may be empty\\.","errorType":"exception","errorClass":"EmptyResultError","httpStatus":null,"severity":"warning","filePath":"clis/huodongxing/events.js","lineNumber":300,"sourceCode":"    );\n  }\n  if (payload?.code === 'RATE_LIMIT') {\n    throw new CommandExecutionError(\n      payload.message || 'huodongxing events was rate limited by www.huodongxing.com',\n      payload.hint || 'Wait a few minutes and retry from a real browser session.',\n    );\n  }\n  if (payload?.code === 'TRANSIENT_ACCESS') {\n    throw new CommandExecutionError(\n      payload.message || 'huodongxing events page returned a temporary busy/access page',\n      payload.hint || 'Wait and retry from the same browser session.',\n    );\n  }\n  if (payload?.code === 'INVALID_LIMIT') {\n    throw new ArgumentError(payload.message || 'huodongxing limit must be a positive integer <= 50');\n  }\n  if (payload?.code === 'EMPTY_RESULT') {\n    throw new EmptyResultError(\n      'huodongxing events',\n      payload.hint || 'No Huodongxing event cards were found. The page may be empty.',\n    );\n  }\n  throw new CommandExecutionError(\n    payload?.message || 'huodongxing events returned malformed extraction data',\n    payload?.hint || 'Huodongxing extraction did not return the expected structured payload.',\n  );\n}\n\nexport function extractEventRows(limit = 20) {\n  return requireExtractionRows(extractEventRowsPayload(limit));\n}\n\nasync function extractEventRowsFromPage(page, limit) {\n  return page.evaluate(`(${extractEventRowsPayload.toString()})(${limit})`);\n}\n","sourceCodeStart":282,"sourceCodeEnd":318,"githubUrl":"https://github.com/jackwener/OpenCLI/blob/49907e53dc3ade5c223ff0c4c2c2785687cec4e6/clis/huodongxing/events.js#L282-L318","documentation":"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.","triggerScenarios":"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).","commonSituations":"Narrow date filters around holidays; city names with no scheduled events; eventType=2 on days with no online events.","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"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":"const isEmptyResultError = e => e instanceof EmptyResultError || /No Huodongxing event cards/.test(e?.message ?? '');","tryCatchPattern":"try { return extractEventRows(limit); } catch (e) { if (e instanceof EmptyResultError) return []; /* empty is a valid answer */ throw e; }","preventionTips":["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"],"tags":["empty-result","scraping","no-data"],"backgroundTag":"empty-result-set","analyzedSha":"49907e53dc3ade5c223ff0c4c2c2785687cec4e6","analyzedAt":"2026-08-29T08:14:47.543Z","schemaVersion":2},"datasetVersion":"2026-08-29T12:17:43.993Z"}