DIYgod/RSSHub · error · InvalidParameterError

该公众号不存在,有关如何获取公众号 id,详见 https://docs.rsshub.app/routes/new-m

Error message

该公众号不存在,有关如何获取公众号 id,详见 https://docs.rsshub.app/routes/new-media#wei-xin-gong-zhong-hao-feeddd-lai-yuan

What it means

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.

Source

Thrown at lib/routes/wechat/feeddd.ts:18

import InvalidParameterError from '@/errors/types/invalid-parameter';
import got from '@/utils/got';
import { parseDate } from '@/utils/parse-date';
import { finishArticleItem } from '@/utils/wechat-mp';

const handler = async (ctx) => {
    const id = ctx.req.param('id');

    const baseUrl = 'https://feed.hamibot.com';
    const apiUrl = `${baseUrl}/api/feeds/${id}/json`;

    let response;

    try {
        response = await got(apiUrl);
    } catch (error) {
        if (((error as Error).name === 'HTTPError' || (error as Error).name === 'FetchError') && (error as { response: { statusCode: number } }).response.statusCode === 404) {
            throw new InvalidParameterError('该公众号不存在,有关如何获取公众号 id,详见 https://docs.rsshub.app/routes/new-media#wei-xin-gong-zhong-hao-feeddd-lai-yuan');
        }
        throw error;
    }

    let items = response.data.items.map((item) => ({
        title: item.title,
        // the date is when the article was grabbed, not published, `finishArticleItem` will fix this
        pubDate: parseDate(item.date_modified),
        link: item.url,
        guid: item.id,
    }));

    items = await Promise.all(items.map((item) => finishArticleItem(item)));

    const ret = {
        title: response.data.title,
        link: response.data.feed_url,
        description: response.data.title,

View on GitHub (pinned to bed535e087)

Solutions

  1. 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.
  2. Verify the account exists on feeddd by visiting `https://feed.hamibot.com/api/feeds/:id/json` directly.
  3. If the account was removed from feeddd, use an alternative WeChat route (e.g. data258).
Defensive patterns

Strategy: try-catch

Validate before calling

// Pre-validate the feeddd ID format before calling the API
// feeddd IDs are typically hex-like strings; verify format
function isValidFeedddId(id: string): boolean {
    return /^[a-zA-Z0-9_-]+$/.test(id) && id.length > 0;
}

Try / catch

try {
    const feed = await fetchRss('/wechat/feeddd/' + id);
} catch (e) {
    if (e.name === 'InvalidParameterError' && e.message.includes('该公众号不存在')) {
        // ID is wrong or account delisted; inform user
        console.error('feeddd ID not found. Check docs: https://docs.rsshub.app/routes/new-media');
    }
    throw e;
}

Prevention

When it happens

Trigger: 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.

Common situations: 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.

Related errors


AI-assisted analysis of DIYgod/RSSHub@bed535e087 (2026-08-12). Data as JSON: /api/errors/101dc997c9b5a6e2. Report an issue: GitHub.