{"record":{"id":"ae2608a4fe3a2f65","repo":"DIYgod/RSSHub","slug":"disqus-rss-is-disabled-due-to-the-lack-of-a-href","errorCode":null,"errorMessage":"Disqus RSS is disabled due to the lack of <a href=\"https://docs.rsshub.app/deploy/config#route-specific-configurations\">relevant config</a>","messagePattern":"Disqus RSS is disabled due to the lack of <a href=\"https://docs\\.rsshub\\.app/deploy/config#route-specific-configurations\">relevant config</a>","errorType":"exception","errorClass":null,"httpStatus":503,"severity":"warning","filePath":"lib/routes-deprecated/disqus/posts.js","lineNumber":6,"sourceCode":"const got = require('@/utils/got');\nconst config = require('@/config').value;\n\nmodule.exports = async (ctx) => {\n    if (!config.disqus || !config.disqus.api_key) {\n        throw new Error('Disqus RSS is disabled due to the lack of <a href=\"https://docs.rsshub.app/deploy/config#route-specific-configurations\">relevant config</a>');\n    }\n    const forum = ctx.params.forum;\n\n    const response = await got({\n        method: 'get',\n        url: `https://disqus.com/api/3.0/forums/listPosts.json?api_key=${config.disqus.api_key}&forum=${forum}`,\n        headers: {\n            Referer: 'https://disqus.com/',\n        },\n    });\n\n    const data = response.data.response;\n\n    const threadsObj = {};\n    for (const item of data) {\n        threadsObj[item.thread] = 1;\n    }\n    let threadsQuery = '';","sourceCodeStart":1,"sourceCodeEnd":24,"githubUrl":"https://github.com/DIYgod/RSSHub/blob/bed535e0879dc71c5aff6f1e7bd1ac21ede40115/lib/routes-deprecated/disqus/posts.js#L1-L24","documentation":"Thrown by the disqus posts route when config.disqus is unset or config.disqus.api_key is missing. The Disqus API requires an api_key to call forums/listPosts.json, so RSSHub refuses to serve the route rather than emit failing upstream calls.","triggerScenarios":"DISQUS_API_KEY (and/or the disqus config block) is not configured on the instance, and a user requests /disqus/posts/:forum.","commonSituations":"Fresh deploy without the optional disqus config; key removed during a config cleanup; key name typo in env.","solutions":["Obtain a Disqus API key and set DISQUS_API_KEY on the instance, then restart.","If you cannot provide a key, do not expose the /disqus route (remove it from any docs/clients).","Verify the key works with a direct curl to the Disqus API before blaming RSSHub."],"exampleFix":"# before\n# (no disqus config)\n# after\nDISQUS_API_KEY=your_public_api_key","handlingStrategy":"validation","validationCode":"const hasDisqusKey = !!config.disqus?.api_key;\nif (!hasDisqusKey) throw new Error('Disqus RSS is disabled ...');","typeGuard":"const isDisqusConfigured = (c: any): boolean => !!c?.disqus?.api_key;","tryCatchPattern":null,"preventionTips":["Set DISQUS_API_KEY in your env config.","Do not advertise /disqus routes on an instance without the key."],"tags":["config","auth","routes","optional-feature"],"backgroundTag":null,"analyzedSha":"bed535e0879dc71c5aff6f1e7bd1ac21ede40115","analyzedAt":"2026-08-12T19:29:35.364Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}