{"record":{"id":"93b309483d4e6cf2","repo":"DIYgod/RSSHub","slug":"github-follower-rss-is-disabled-due-to-the-lack-of","errorCode":null,"errorMessage":"GitHub follower RSS is disabled due to the lack of <a href=\"https://docs.rsshub.app/deploy/config#route-specific-configurations\">relevant config</a>","messagePattern":"GitHub follower 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":"ConfigNotFoundError","httpStatus":null,"severity":"error","filePath":"lib/routes/github/follower.ts","lineNumber":31,"sourceCode":"        requirePuppeteer: false,\n        antiCrawler: false,\n        supportBT: false,\n        supportPodcast: false,\n        supportScihub: false,\n    },\n    radar: [\n        {\n            source: ['github.com/:user'],\n        },\n    ],\n    name: 'User Followers',\n    maintainers: ['HenryQW'],\n    handler,\n};\n\nasync function handler(ctx) {\n    if (!config.github || !config.github.access_token) {\n        throw new ConfigNotFoundError('GitHub follower 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 user = ctx.req.param('user');\n\n    const host = `https://github.com/${user}`;\n    const url = 'https://api.github.com/graphql';\n\n    const response = await got({\n        method: 'post',\n        url,\n        headers: {\n            Authorization: `bearer ${config.github.access_token}`,\n        },\n        json: {\n            query: /* GraphQL */ `\n            {\n                user(login: \"${user}\") {\n                  followers(first: 10) {\n                    edges {","sourceCodeStart":13,"sourceCodeEnd":49,"githubUrl":"https://github.com/DIYgod/RSSHub/blob/bed535e0879dc71c5aff6f1e7bd1ac21ede40115/lib/routes/github/follower.ts#L13-L49","documentation":"Thrown as a ConfigNotFoundError by the GitHub Followers route when config.github.access_token is not set. The route uses the GitHub GraphQL API to fetch a user's followers, which requires authentication. The guard pattern is identical to other GitHub routes: 'if (!config.github || !config.github.access_token)'.","triggerScenarios":"Any request to /github/user/followers/:user when GITHUB_ACCESS_TOKEN is not configured in the RSSHub environment. The token is needed because the GraphQL followers query requires authentication.","commonSituations":"New RSSHub instance without GITHUB_ACCESS_TOKEN; the token was revoked or expired; the env var name is misspelled; deploying to a platform (Vercel, Railway) without adding the env var.","solutions":["Set GITHUB_ACCESS_TOKEN environment variable to a valid GitHub personal access token","For Docker: add -e GITHUB_ACCESS_TOKEN=ghp_xxxx to your run command","Verify the token has no special scope requirements (public read access is sufficient for followers)","Restart the RSSHub process after configuration"],"exampleFix":"// Configuration fix, not code change:\n// Set environment variable GITHUB_ACCESS_TOKEN=ghp_your_token\n// Restart RSSHub","handlingStrategy":"validation","validationCode":"// Pre-flight config check\nif (!config.github?.access_token) {\n    throw new ConfigNotFoundError('GITHUB_ACCESS_TOKEN is required for GitHub follower feeds');\n}","typeGuard":"function hasGitHubToken(cfg: typeof config): cfg is typeof config & { github: { access_token: string } } {\n    return !!cfg.github?.access_token;\n}","tryCatchPattern":null,"preventionTips":["Set GITHUB_ACCESS_TOKEN in the RSSHub environment","Use Docker env vars or .env file consistently","Test the token with: curl -H \"Authorization: bearer TOKEN\" https://api.github.com/graphql","Restart RSSHub after changing environment variables"],"tags":["config","github","authentication","missing-config","config-not-found"],"backgroundTag":null,"analyzedSha":"bed535e0879dc71c5aff6f1e7bd1ac21ede40115","analyzedAt":"2026-08-12T19:29:35.364Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}