{"record":{"id":"11c7efe4b5a657b8","repo":"DIYgod/RSSHub","slug":"zodgame-rss-is-disabled-due-to-the-lack-of-a-href","errorCode":null,"errorMessage":"Zodgame RSS is disabled due to the lack of <a href=\"https://docs.rsshub.app/deploy/config#route-specific-configurations\">relevant config</a>","messagePattern":"Zodgame RSS is disabled due to the lack of <a href=\"https://docs\\.rsshub\\.app/deploy/config#route-specific-configurations\">relevant config</a>","errorType":"validation","errorClass":"ConfigNotFoundError","httpStatus":null,"severity":"error","filePath":"lib/routes/zodgame/forum.tsx","lineNumber":42,"sourceCode":"        requirePuppeteer: false,\n        antiCrawler: false,\n        supportBT: false,\n        supportPodcast: false,\n        supportScihub: false,\n        nsfw: true,\n    },\n    name: 'forum',\n    maintainers: ['FeCCC'],\n    handler,\n};\n\nasync function handler(ctx) {\n    const fid = ctx.req.param('fid');\n    const subUrl = `${rootUrl}/api/mobile/index.php?version=4&module=forumdisplay&fid=${fid}`;\n    const cookie = config.zodgame.cookie;\n\n    if (cookie === undefined) {\n        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>');\n    }\n\n    const response = await got({\n        method: 'get',\n        url: subUrl,\n        headers: {\n            Cookie: cookie,\n        },\n    });\n\n    const info = response.data.Variables;\n\n    const ThreadList = info.forum_threadlist\n        .map((item) => {\n            const type = info.threadtypes.types[item.typeid];\n            if (!type) {\n                return;\n            }","sourceCodeStart":24,"sourceCodeEnd":60,"githubUrl":"https://github.com/DIYgod/RSSHub/blob/bed535e0879dc71c5aff6f1e7bd1ac21ede40115/lib/routes/zodgame/forum.tsx#L24-L60","documentation":"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.","triggerScenarios":"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).","commonSituations":"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.","solutions":["Log into zodgame.xyz in a browser, open DevTools → Application → Cookies, copy the full cookie string (especially the session auth cookies).","Set the `ZODGAME_COOKIE` environment variable to that cookie string (format: `key1=value1; key2=value2`).","Restart RSSHub so config is re-read.","If the cookie has expired, repeat the harvest — Discuz session cookies have a finite lifetime."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"if (!process.env.ZODGAME_COOKIE) {\n    throw new Error('ZODGAME_COOKIE environment variable is not set. Zodgame RSS will be unavailable.');\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Set ZODGAME_COOKIE in the RSSHub environment before enabling the zodgame route.","Harvest the cookie from a logged-in zodgame.xyz browser session (DevTools → Network → copy Cookie header).","Discuz session cookies expire — refresh the cookie periodically.","Use the requireConfig feature flag so RSSHub shows the route as configuration-required in documentation."],"tags":["config","environment","authentication","zodgame"],"backgroundTag":null,"analyzedSha":"bed535e0879dc71c5aff6f1e7bd1ac21ede40115","analyzedAt":"2026-08-12T19:29:35.364Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}