{"record":{"id":"d417eee5c2b0c199","repo":"DIYgod/RSSHub","slug":"instagram-rss-is-disabled-due-to-the-lack-of-a-hr-d417ee","errorCode":null,"errorMessage":"Instagram RSS is disabled due to the lack of <a href=\"https://docs.rsshub.app/deploy/config#route-specific-configurations\">relevant config</a>","messagePattern":"Instagram 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/instagram/web-api/index.ts","lineNumber":90,"sourceCode":"\n            // User feed metadata\n            const biography = userInfo.biography;\n            const fullName = userInfo.full_name;\n            const id = userInfo.id;\n            const username = userInfo.username;\n            feedTitle = `${fullName} (@${username}) - Instagram`;\n            feedDescription = biography;\n            // exists in web api ?? exist in private api ?? exist in both\n            feedLogo = userInfo.profile_pic_url_hd ?? userInfo.hd_profile_pic_url_info?.url ?? userInfo.profile_pic_url;\n            feedLink = `${baseUrl}/${username}`;\n\n            items = cookie ? await getUserFeedItems(id, username, cookieJar) : [...userInfo.edge_felix_video_timeline.edges, ...userInfo.edge_owner_to_timeline_media.edges];\n\n            break;\n        }\n        case 'tags': {\n            if (!config.instagram || !config.instagram.cookie) {\n                throw new ConfigNotFoundError('Instagram 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 tag = key;\n\n            feedTitle = `#${tag} - Instagram`;\n            feedLink = `${baseUrl}/explore/search/keyword/?q=%23${tag}`;\n\n            const feedData = await getTagsFeed(tag, cookieJar);\n\n            feedLogo = feedData.profile_pic_url;\n            items = feedData.top.sections.flatMap((section) =>\n                // either media or clips\n                (section.feed_type === 'media' ? section.layout_content.medias : [...section.layout_content.one_by_two_item.clips.items, ...section.layout_content.fill_items]).map((item) => item.media)\n            );\n\n            break;\n        }\n        default:\n            break;","sourceCodeStart":72,"sourceCodeEnd":108,"githubUrl":"https://github.com/DIYgod/RSSHub/blob/bed535e0879dc71c5aff6f1e7bd1ac21ede40115/lib/routes/instagram/web-api/index.ts#L72-L108","documentation":"Thrown as `ConfigNotFoundError` in the `tags` branch of the web-API handler: the tags feed requires authentication (Instagram hides tag pages behind login), so if `config.instagram.cookie` is not set the route refuses to proceed. Note the `user` branch can fall back to the guest GraphQL edges, but `tags` cannot — hence the explicit guard only in the tags case.","triggerScenarios":"Request to `/instagram/tags/:tag` on an instance where `config.instagram.cookie` is unset or empty. Fires at web-api/index.ts:90 after the category check passes.","commonSituations":"Self-hosted instance configured for the `user` route (which works anonymously) but not for `tags`; cookie env var removed/renamed; public instance without credentials.","solutions":["Set `INSTAGRAM_COOKIE` env var with a valid logged-in session cookie.","If you cannot supply a cookie, use the `user` route instead (which has an anonymous fallback).","Verify the cookie still authenticates (see error 284) — a present-but-dead cookie will instead trip the 'Invalid cookie' path."],"exampleFix":"// before: tags requested with no cookie\n// after: .env\nINSTAGRAM_COOKIE=csrftoken=...; sessionid=...; ...","handlingStrategy":"validation","validationCode":"if (category === 'tags' && !config.instagram?.cookie) {\n  throw new ConfigNotFoundError('Instagram tags feed requires INSTAGRAM_COOKIE');\n}","typeGuard":"const hasCookie = (c?: {cookie?:string}): c is {cookie:string} => Boolean(c && c.cookie);","tryCatchPattern":null,"preventionTips":["Document that the tags route is cookie-gated while the user route is not.","Validate cookie presence in the tags branch before any network call."],"tags":["instagram","tags","cookie","config-not-found"],"backgroundTag":null,"analyzedSha":"bed535e0879dc71c5aff6f1e7bd1ac21ede40115","analyzedAt":"2026-08-12T19:29:35.364Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}