DIYgod/RSSHub · error · ConfigNotFoundError
Iwara subscription RSS is disabled due to the lack of <a hre
Error message
Iwara subscription RSS is disabled due to the lack of <a href="https://docs.rsshub.app/deploy/config#route-specific-configurations">relevant config</a>
What it means
Thrown as `ConfigNotFoundError` by the Iwara subscriptions route when `config.iwara` lacks `username` or `password`. The route logs into Iwara via a headless browser (Playwright) using username+password — there is no anonymous/cookie mode. Without credentials it aborts before launching the browser.
Source
Thrown at lib/routes/iwara/subscriptions.ts:66
nsfw: true,
},
radar: [
{
source: ['www.iwara.tv/subscriptions/videos', 'www.iwara.tv/subscriptions/images'],
},
],
name: 'User Subscriptions',
maintainers: ['FeCCC'],
handler,
url: 'www.iwara.tv/',
description: `::: warning
This route requires username and password, therefore it's only available when self-hosting, refer to the [Deploy Guide](https://docs.rsshub.app/deploy/config#route-specific-configurations) for route-specific configurations.
:::`,
};
async function handler() {
if (!config.iwara || !config.iwara.username || !config.iwara.password) {
throw new ConfigNotFoundError('Iwara subscription RSS is disabled due to the lack of <a href="https://docs.rsshub.app/deploy/config#route-specific-configurations">relevant config</a>');
}
const username = config.iwara.username;
const password = config.iwara.password;
const { page, destroy } = await getPlaywrightPage(rootUrl, {
gotoConfig: {
waitUntil: 'domcontentloaded',
},
});
try {
const fetchApi = (url: string, options: any) =>
page.evaluate(
async (args) => {
const res = await fetch(args.url, {
method: args.options.method || 'GET',
headers: args.options.headers,View on GitHub (pinned to bed535e087)
Solutions
- Set `IWARA_USERNAME` and `IWARA_PASSWORD` in the RSSHub environment and restart.
- Ensure Playwright/Chromium is installed (`npm exec playwright install chromium` or the project's puppeteer-equivalent setup) since this route uses `getPlaywrightPage`.
- Verify the account is valid by logging in on iwara.tv manually first.
Example fix
// before: no iwara config // after: .env IWARA_USERNAME=your_account IWARA_PASSWORD=your_password
Defensive patterns
Strategy: validation
Validate before calling
if (!config.iwara?.username || !config.iwara?.password) {
throw new ConfigNotFoundError('Iwara subscriptions require IWARA_USERNAME and IWARA_PASSWORD');
} Type guard
const iwaraCredsOk = (c?: {username?:string;password?:string}): c is {username:string;password:string} =>
Boolean(c && c.username && c.password); Prevention
- Set Iwara credentials via env at deploy time.
- Ensure Playwright/Chromium is installed for this route.
- Document that the route is self-host-only.
When it happens
Trigger: Self-hosted RSSHub where `IWARA_USERNAME`/`IWARA_PASSWORD` are not set and a request hits `/iwara/subscriptions`. Fires at subscriptions.ts:66.
Common situations: Fresh deploy without the iwara env block; `.env` missing; public instance (rsshub.app) which does not provide credentials; the route also requires Playwright/Chromium to be installed (`requireConfig`/puppeteer-equivalent), so missing browser binaries compound the failure.
Related errors
- Instagram RSS is disabled due to the lack of <a href="https:
- HTTP error! status: ${res.status}
- 缺少对应 loginUid 的 Bilibili 用户登录后的 Cookie 值 <a href="https://do
- 对应 loginUid 的 Bilibili 用户的 Cookie 已过期
- Bilibili browser mode returned non-JSON response with status
AI-assisted analysis of DIYgod/RSSHub@bed535e087 (2026-08-12).
Data as JSON: /api/errors/61cb83adbc48fadd.
Report an issue: GitHub.