{"record":{"id":"530dee69012e07c5","repo":"DIYgod/RSSHub","slug":"no-novel-data-found","errorCode":null,"errorMessage":"No novel data found","messagePattern":"No novel data found","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"lib/routes/pixiv/novel-api/content/nsfw.ts","lineNumber":37,"sourceCode":"            searchParams: queryString.stringify({\n                id: novelId,\n                viewer_version: '20221031_ai',\n            }),\n        });\n\n        const virtualConsole = new VirtualConsole().on('error', () => void 0);\n\n        const { window } = new JSDOM(response.data, {\n            runScripts: 'dangerously',\n            virtualConsole,\n        });\n\n        const novelDetail = window.pixiv?.novel as NSFWNovelDetail;\n\n        window.close();\n\n        if (!novelDetail) {\n            throw new Error('No novel data found');\n        }\n\n        const images = Object.fromEntries(\n            Object.entries(novelDetail.images)\n                .filter(([, image]) => image?.urls?.original)\n                .map(([id, image]) => [id, image.urls.original])\n        );\n\n        const parsedContent = await parseNovelContent(novelDetail.text, images, token);\n\n        return {\n            id: novelDetail.id,\n            title: novelDetail.title,\n            description: novelDetail.caption,\n            content: parsedContent,\n\n            userId: novelDetail.userId,\n            userName: null, // Not provided in NSFW API","sourceCodeStart":19,"sourceCodeEnd":55,"githubUrl":"https://github.com/DIYgod/RSSHub/blob/bed535e0879dc71c5aff6f1e7bd1ac21ede40115/lib/routes/pixiv/novel-api/content/nsfw.ts#L19-L55","documentation":"Error \"No novel data found\" thrown in DIYgod/RSSHub.","triggerScenarios":"The pixiv API returns no novel data for the requested NSFW novel id.","commonSituations":"See trigger scenarios.","solutions":["Verify the novel id exists and is accessible with the configured pixiv account.","For R18 novels, ensure PIXIV_REFRESHTOKEN is set."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"bed535e0879dc71c5aff6f1e7bd1ac21ede40115","analyzedAt":"2026-08-12T19:29:35.364Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}