jackwener/OpenCLI · warning · EmptyResultError
No series found for '${brand}'. Check the brand name spellin
Error message
No series found for '${brand}'. Check the brand name spelling (simplified Chinese), or try a single A-Z catalog letter. What it means
EmptyResultError raised by the autohome brand command when the catalog page for the resolved initial letter parses successfully but yields zero series rows matching the brand. Usually means the brand name didn't match anything on that letter's page.
Source
Thrown at clis/autohome/brand.js:101
strategy: Strategy.PUBLIC,
browser: false,
args: [
{ name: 'brand', required: true, positional: true, help: '品牌名(宝马 / 比亚迪 / 理想 / 丰田 …)或车系目录首字母 A-Z' },
{ name: 'limit', type: 'int', default: 60, help: '返回的车系数量(最多 120)' },
],
columns: BRAND_COLUMNS,
func: async (args) => {
const brand = String(args.brand || '').trim();
const initial = resolveBrandInitial(brand);
const limit = requireLimit(args.limit, 60, 120);
const html = await ahFetch(
`${AH_BASE}/grade/carhtml/${initial}.html`,
`brand ${brand}`,
);
const rows = parseBrandSeries(html, /^[A-Za-z]$/.test(brand) ? '' : brand, limit);
if (rows.length === 0) {
throw new EmptyResultError(
`autohome brand ${brand}`,
`No series found for '${brand}'. Check the brand name spelling (simplified Chinese), or try a single A-Z catalog letter.`,
);
}
return rows;
},
});
View on GitHub (pinned to 49907e53dc)
Solutions
- Spell the brand in simplified Chinese exactly as Autohome writes it (e.g. 宝马, 比亚迪, 理想).
- Try a single A-Z catalog letter (e.g. 'B') to list all series under that letter and find the right name.
- Double-check characters (traditional vs simplified) and remove punctuation/spaces.
Example fix
// before opencli autohome brand 'BMW' // after opencli autohome brand '宝马'
Defensive patterns
Strategy: fallback
Validate before calling
if (!/^[\u4e00-\u9fa5]+$/.test(brand) && !/^[A-Za-z]$/.test(brand)) {
console.warn("use simplified Chinese brand name (e.g. 宝马) or a single A-Z letter");
} Try / catch
try {
rows = await brand(brandName, limit);
} catch (e) {
if (/No series found/.test(e.message)) {
// fall back to browsing the letter catalog
rows = await brand(brandInitial(brandName) || 'B', limit);
} else throw e;
} Prevention
- Always use the exact simplified-Chinese brand spelling from autohome.com.cn.
- Use single-letter catalog mode to discover valid brand names first.
- Strip punctuation/middle dots before calling, as the library normalizes · and spaces.
When it happens
Trigger: Calling the brand command with a misspelled or non-Chinese brand name (e.g. 'BMW' or '宝马x'), or a brand whose initial was mapped to the wrong A-Z catalog letter so the filtered block has no series.
Common situations: Entering brand names in pinyin or English instead of simplified Chinese; typos in Chinese characters; niche brands absent from the catalog page for that letter.
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
- This series has no koubei rating yet.
- ${command} returned no results
- NOT_FOUND
- guazi browse ${code}
- guazi car ${clueId}
AI-assisted analysis of jackwener/OpenCLI@49907e53dc (2026-08-29).
Data as JSON: /api/errors/70bbd40a8b4c8c7a.
Report an issue: GitHub.