{"record":{"id":"70bbd40a8b4c8c7a","repo":"jackwener/OpenCLI","slug":"no-series-found-for-brand-check-the-brand-na","errorCode":null,"errorMessage":"No series found for '${brand}'. Check the brand name spelling (simplified Chinese), or try a single A-Z catalog letter.","messagePattern":"No series found for '(.+?)'\\. Check the brand name spelling \\(simplified Chinese\\), or try a single A-Z catalog letter\\.","errorType":"exception","errorClass":"EmptyResultError","httpStatus":null,"severity":"warning","filePath":"clis/autohome/brand.js","lineNumber":101,"sourceCode":"    strategy: Strategy.PUBLIC,\n    browser: false,\n    args: [\n        { name: 'brand', required: true, positional: true, help: '品牌名（宝马 / 比亚迪 / 理想 / 丰田 …）或车系目录首字母 A-Z' },\n        { name: 'limit', type: 'int', default: 60, help: '返回的车系数量（最多 120）' },\n    ],\n    columns: BRAND_COLUMNS,\n    func: async (args) => {\n        const brand = String(args.brand || '').trim();\n        const initial = resolveBrandInitial(brand);\n        const limit = requireLimit(args.limit, 60, 120);\n\n        const html = await ahFetch(\n            `${AH_BASE}/grade/carhtml/${initial}.html`,\n            `brand ${brand}`,\n        );\n        const rows = parseBrandSeries(html, /^[A-Za-z]$/.test(brand) ? '' : brand, limit);\n        if (rows.length === 0) {\n            throw new EmptyResultError(\n                `autohome brand ${brand}`,\n                `No series found for '${brand}'. Check the brand name spelling (simplified Chinese), or try a single A-Z catalog letter.`,\n            );\n        }\n        return rows;\n    },\n});\n","sourceCodeStart":83,"sourceCodeEnd":109,"githubUrl":"https://github.com/jackwener/OpenCLI/blob/49907e53dc3ade5c223ff0c4c2c2785687cec4e6/clis/autohome/brand.js#L83-L109","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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."],"exampleFix":"// before\nopencli autohome brand 'BMW'\n// after\nopencli autohome brand '宝马'","handlingStrategy":"fallback","validationCode":"if (!/^[\\u4e00-\\u9fa5]+$/.test(brand) && !/^[A-Za-z]$/.test(brand)) {\n  console.warn(\"use simplified Chinese brand name (e.g. 宝马) or a single A-Z letter\");\n}","typeGuard":null,"tryCatchPattern":"try {\n  rows = await brand(brandName, limit);\n} catch (e) {\n  if (/No series found/.test(e.message)) {\n    // fall back to browsing the letter catalog\n    rows = await brand(brandInitial(brandName) || 'B', limit);\n  } else throw e;\n}","preventionTips":["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."],"tags":["empty-results","scraping","input"],"backgroundTag":"empty-result-set","analyzedSha":"49907e53dc3ade5c223ff0c4c2c2785687cec4e6","analyzedAt":"2026-08-29T08:14:47.543Z","schemaVersion":2},"datasetVersion":"2026-08-29T17:17:51.833Z"}