{"record":{"id":"101dc997c9b5a6e2","repo":"DIYgod/RSSHub","slug":"id-https-docs-rsshub-app-ro","errorCode":null,"errorMessage":"该公众号不存在，有关如何获取公众号 id，详见 https://docs.rsshub.app/routes/new-media#wei-xin-gong-zhong-hao-feeddd-lai-yuan","messagePattern":"该公众号不存在，有关如何获取公众号 id，详见 https://docs\\.rsshub\\.app/routes/new-media#wei-xin-gong-zhong-hao-feeddd-lai-yuan","errorType":"validation","errorClass":"InvalidParameterError","httpStatus":null,"severity":"error","filePath":"lib/routes/wechat/feeddd.ts","lineNumber":18,"sourceCode":"import InvalidParameterError from '@/errors/types/invalid-parameter';\nimport got from '@/utils/got';\nimport { parseDate } from '@/utils/parse-date';\nimport { finishArticleItem } from '@/utils/wechat-mp';\n\nconst handler = async (ctx) => {\n    const id = ctx.req.param('id');\n\n    const baseUrl = 'https://feed.hamibot.com';\n    const apiUrl = `${baseUrl}/api/feeds/${id}/json`;\n\n    let response;\n\n    try {\n        response = await got(apiUrl);\n    } catch (error) {\n        if (((error as Error).name === 'HTTPError' || (error as Error).name === 'FetchError') && (error as { response: { statusCode: number } }).response.statusCode === 404) {\n            throw new InvalidParameterError('该公众号不存在，有关如何获取公众号 id，详见 https://docs.rsshub.app/routes/new-media#wei-xin-gong-zhong-hao-feeddd-lai-yuan');\n        }\n        throw error;\n    }\n\n    let items = response.data.items.map((item) => ({\n        title: item.title,\n        // the date is when the article was grabbed, not published, `finishArticleItem` will fix this\n        pubDate: parseDate(item.date_modified),\n        link: item.url,\n        guid: item.id,\n    }));\n\n    items = await Promise.all(items.map((item) => finishArticleItem(item)));\n\n    const ret = {\n        title: response.data.title,\n        link: response.data.feed_url,\n        description: response.data.title,","sourceCodeStart":1,"sourceCodeEnd":36,"githubUrl":"https://github.com/DIYgod/RSSHub/blob/bed535e0879dc71c5aff6f1e7bd1ac21ede40115/lib/routes/wechat/feeddd.ts#L1-L36","documentation":"Thrown by the WeChat feeddd route when the upstream API (`https://feed.hamibot.com/api/feeds/:id/json`) returns HTTP 404, meaning no WeChat public account (公众号) exists for the given `id`. This is an `InvalidParameterError` (HTTP 400). The error message is in Chinese and includes a documentation link explaining how to find the correct account ID.","triggerScenarios":"A request to `/wechat/feeddd/:id` where `:id` is not a valid feeddd account identifier. The `got` call to the hamibot API returns 404, which is caught and re-thrown as `InvalidParameterError`. Any other HTTP error (non-404) is re-thrown as-is.","commonSituations":"The user entered the WeChat account's Biz ID or a generic identifier instead of the feeddd-specific ID, or the account was delisted from the feeddd service. The feeddd service may also be temporarily unavailable with a 404-like response.","solutions":["Follow the documentation link in the error message (https://docs.rsshub.app/routes/new-media#wei-xin-gong-zhong-hao-feeddd-lai-yuan) to find the correct feeddd ID.","Verify the account exists on feeddd by visiting `https://feed.hamibot.com/api/feeds/:id/json` directly.","If the account was removed from feeddd, use an alternative WeChat route (e.g. data258)."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"// Pre-validate the feeddd ID format before calling the API\n// feeddd IDs are typically hex-like strings; verify format\nfunction isValidFeedddId(id: string): boolean {\n    return /^[a-zA-Z0-9_-]+$/.test(id) && id.length > 0;\n}","typeGuard":null,"tryCatchPattern":"try {\n    const feed = await fetchRss('/wechat/feeddd/' + id);\n} catch (e) {\n    if (e.name === 'InvalidParameterError' && e.message.includes('该公众号不存在')) {\n        // ID is wrong or account delisted; inform user\n        console.error('feeddd ID not found. Check docs: https://docs.rsshub.app/routes/new-media');\n    }\n    throw e;\n}","preventionTips":["Obtain the feeddd ID from the official feeddd service, not from WeChat directly.","Follow the documentation link in the error message for ID lookup instructions.","Have a fallback WeChat route (e.g. data258, wechat/mp) in case feeddd delists the account."],"tags":["parameter-validation","invalid-parameter","http-404","wechat","rss-route","feeddd"],"backgroundTag":null,"analyzedSha":"bed535e0879dc71c5aff6f1e7bd1ac21ede40115","analyzedAt":"2026-08-12T19:29:35.364Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}