DIYgod/RSSHub · error · ConfigNotFoundError

Zodgame RSS is disabled due to the lack of <a href="https://

Error message

Zodgame RSS is disabled due to the lack of <a href="https://docs.rsshub.app/deploy/config#route-specific-configurations">relevant config</a>

What it means

A `ConfigNotFoundError` at lib/routes/zodgame/forum.tsx:42 when `config.zodgame.cookie` is `undefined`, meaning the `ZODGAME_COOKIE` environment variable was not set. Zodgame (zodgame.xyz) requires an authenticated session cookie to access its Discuz mobile API. Without it, every request would return a login page, so the route refuses to run entirely. The route declares this via `features.requireConfig` with the ZODGAME_COOKIE key.

Source

Thrown at lib/routes/zodgame/forum.tsx:42

        requirePuppeteer: false,
        antiCrawler: false,
        supportBT: false,
        supportPodcast: false,
        supportScihub: false,
        nsfw: true,
    },
    name: 'forum',
    maintainers: ['FeCCC'],
    handler,
};

async function handler(ctx) {
    const fid = ctx.req.param('fid');
    const subUrl = `${rootUrl}/api/mobile/index.php?version=4&module=forumdisplay&fid=${fid}`;
    const cookie = config.zodgame.cookie;

    if (cookie === undefined) {
        throw new ConfigNotFoundError('Zodgame RSS is disabled due to the lack of <a href="https://docs.rsshub.app/deploy/config#route-specific-configurations">relevant config</a>');
    }

    const response = await got({
        method: 'get',
        url: subUrl,
        headers: {
            Cookie: cookie,
        },
    });

    const info = response.data.Variables;

    const ThreadList = info.forum_threadlist
        .map((item) => {
            const type = info.threadtypes.types[item.typeid];
            if (!type) {
                return;
            }

View on GitHub (pinned to bed535e087)

Solutions

  1. Log into zodgame.xyz in a browser, open DevTools → Application → Cookies, copy the full cookie string (especially the session auth cookies).
  2. Set the `ZODGAME_COOKIE` environment variable to that cookie string (format: `key1=value1; key2=value2`).
  3. Restart RSSHub so config is re-read.
  4. If the cookie has expired, repeat the harvest — Discuz session cookies have a finite lifetime.
Defensive patterns

Strategy: validation

Validate before calling

if (!process.env.ZODGAME_COOKIE) {
    throw new Error('ZODGAME_COOKIE environment variable is not set. Zodgame RSS will be unavailable.');
}

Prevention

When it happens

Trigger: Self-hosted RSSHub instance without ZODGAME_COOKIE in the environment; the env var name is misspelled; the value is set but empty string (note: empty string is not undefined, so empty string would bypass this check but fail at the API).

Common situations: New deployment missing the env var; docker-compose/env file doesn't include ZODGAME_COOKIE; cookie expired and was removed but env var unset rather than refreshed.

Related errors


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