Why Your RSSHub Feed Isn't Working and What to Check
Updated
An RSSHub feed usually fails for one of four reasons: the route path or parameters don't match the docs, the target site changed or blocks automated access, the public instance is unreachable or rate-limited, or the route needs a self-hosted instance or extra configuration. Work through these in order — most failures resolve at the first or second check.
1. Verify the route path and parameters
RSSHub feeds follow a predictable URL shape:
https://rsshub.app/<namespace>/<route>/<parameter>
Common mistakes:
- Wrong namespace or route name. Routes are grouped by site (e.g. a namespace for the service, then the specific route). Copy the path directly from the docs rather than typing it from memory.
- Missing required parameters. Many routes need a user ID, channel ID, or keyword. If a parameter is required and omitted, the route returns an error or empty feed.
- Wrong parameter type. Some routes expect a numeric ID, others a slug or username. Passing the wrong type often produces an empty result rather than a clear error.
- Extra or trailing slashes. A stray
/at the end can route to a different handler.
Check: Open the feed URL directly in a browser. A working route returns XML. An error page, redirect, or empty <channel> points to the route itself.
2. Check whether the target site changed or blocks access
RSSHub scrapes or calls the underlying site, so it breaks when the site changes.
- Site redesign or API change. If the source site restructured its pages or changed its internal API, the route may return empty or stale content until it's updated.
- Anti-bot protection. Sites behind aggressive bot detection, login walls, or CAPTCHAs often can't be scraped from a shared instance.
- Login-required content. Routes that need an account usually require you to supply credentials or cookies — a public instance won't have them.
Check: Visit the source page manually. If it now requires login, shows a CAPTCHA, or looks structurally different, the route is likely affected. Check the RSSHub docs or project issue tracker for that route's status.
3. Confirm the instance is reachable and not rate-limited
The public instance at rsshub.app is shared, so it can be slow, rate-limited, or temporarily down.
- Rate limiting. Too many requests in a short window can return errors. Space out requests and avoid polling aggressively.
- Instance downtime. The public instance occasionally goes down or is blocked in some regions.
- Network/region blocks. Your network or region may not reach the instance reliably.
Check: Try a known-good route (a simple, popular one from the docs). If that also fails, the problem is the instance or your connection, not the route.
4. Consider whether you need a self-hosted instance or extra config
Some routes only work reliably on your own deployment.
| Situation | Likely fix |
|---|---|
| Route needs login/cookies | Self-host and supply credentials |
| Public instance rate-limits you | Self-host to get your own quota |
| Route is region-restricted | Self-host in a suitable region |
| High-volume or private use | Self-host for stability and privacy |
| Route marked as requiring config | Follow the route's setup notes in the docs |
Self-hosting also lets you add routes that the public instance disables for policy or load reasons.
Quick diagnostic order
- Paste the feed URL in a browser — does it return XML?
- Compare the path and parameters against the docs, character by character.
- Test a different, known-working route on the same instance.
- Check the source site for login walls, CAPTCHAs, or redesigns.
- If the route needs credentials or you hit rate limits, self-host.
Most "broken feed" reports trace back to step 1 or 2. Only move to self-hosting once you've confirmed the route and instance are otherwise fine.