{"record":{"id":"41b2521e7eefd7bd","repo":"DIYgod/RSSHub","slug":"getuserfullinfo-is-not-available-due-to-the-absens","errorCode":null,"errorMessage":"GetUserFullInfo is not available due to the absense of [Miyoushe Cookie]. Check <a href=\"https://docs.rsshub.app/deploy/config#route-specific-configurations\">relevant config tutorial</a>","messagePattern":"GetUserFullInfo is not available due to the absense of \\[Miyoushe Cookie\\]\\. Check <a href=\"https://docs\\.rsshub\\.app/deploy/config#route-specific-configurations\">relevant config tutorial</a>","errorType":"exception","errorClass":"ConfigNotFoundError","httpStatus":null,"severity":"error","filePath":"lib/routes/mihoyo/bbs/cache.ts","lineNumber":8,"sourceCode":"import { config } from '@/config';\nimport ConfigNotFoundError from '@/errors/types/config-not-found';\nimport cache from '@/utils/cache';\nimport got from '@/utils/got';\n\nconst getUserFullInfo = (ctx, uid) => {\n    if (!uid && !config.mihoyo.cookie) {\n        throw new ConfigNotFoundError('GetUserFullInfo is not available due to the absense of [Miyoushe Cookie]. Check <a href=\"https://docs.rsshub.app/deploy/config#route-specific-configurations\">relevant config tutorial</a>');\n    }\n    uid ||= '';\n    const key = 'mihoyo:user-full-info-uid-' + uid;\n    return cache.tryGet(key, async () => {\n        const query = new URLSearchParams({\n            uid,\n            gids: '2',\n        }).toString();\n        const url = `https://bbs-api.miyoushe.com/user/wapi/getUserFullInfo?${query}`;\n        const response = await got({\n            method: 'get',\n            url,\n            headers: {\n                Referer: `https://www.miyoushe.com/ys/accountCenter/postList?id=${uid}`,\n                Cookie: config.mihoyo.cookie,\n            },\n        });\n        const userInfo = response?.data?.data?.user_info;","sourceCodeStart":1,"sourceCodeEnd":26,"githubUrl":"https://github.com/DIYgod/RSSHub/blob/bed535e0879dc71c5aff6f1e7bd1ac21ede40115/lib/routes/mihoyo/bbs/cache.ts#L1-L26","documentation":"ConfigNotFoundError thrown when the mihoyo/bbs routes need user-specific info (getUserFullInfo) but config.mihoyo.cookie is not set. The message points to the deployment config docs because Miyoushe (米游社) requires a logged-in cookie for any user-scoped data.","triggerScenarios":"!uid && !config.mihoyo.cookie — the caller passed no uid AND the global mihoyo cookie is absent. The route cannot fetch user full info without authentication context.","commonSituations":"Self-hosted RSSHub without MIHOYO_COOKIE env var; using the public instance (which never sets it); cookie env var renamed or removed in an upgrade.","solutions":["Set the MIHOYO_COOKIE environment variable (or config.mihoyo.cookie) to the Cookie header from a logged-in miyoushe.com session.","Restart RSSHub after setting the env var.","For routes that need a specific uid, pass it via the route path so the !uid branch is not the blocker.","Verify the env var name against current docs — it was historically MIHOYO_COOKIE."],"exampleFix":"// before\n// .env has no MIHOYO_COOKIE\n\n// after\nMIHOYO_COOKIE=account_id=...; cookie_token=...; ltoken=...","handlingStrategy":"validation","validationCode":"if (!uid && !config.mihoyo.cookie) {\n    throw new ConfigNotFoundError('Set MIHOYO_COOKIE to use user-scoped Miyoushe routes');\n}","typeGuard":"function hasMihoyoCookie(): boolean {\n    return typeof config.mihoyo.cookie === 'string' && config.mihoyo.cookie.length > 0;\n}","tryCatchPattern":null,"preventionTips":["Document MIHOYO_COOKIE in deployment setup.","Validate required env vars at RSSHub startup.","Provide a clear error pointing to config docs."],"tags":["mihoyo","config","auth","cookie"],"backgroundTag":null,"analyzedSha":"bed535e0879dc71c5aff6f1e7bd1ac21ede40115","analyzedAt":"2026-08-12T19:29:35.364Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}