{"record":{"id":"4018d51b7a3e228b","repo":"DIYgod/RSSHub","slug":"error-as-error-message","errorCode":null,"errorMessage":"${(error as Error).message}","messagePattern":"\\$\\{\\(error as Error\\)\\.message\\}","errorType":"exception","errorClass":"NotFoundError","httpStatus":404,"severity":"error","filePath":"lib/routes/picuki/profile.ts","lineNumber":101,"sourceCode":"                    'User-Agent': config.trueUA,\n                },\n            });\n        } catch (error) {\n            if ((error as { status?: number }).status === 403) {\n                const { page, destroy } = await getPlaywrightPage(profileUrl, {\n                    onBeforeLoad: async (page) => {\n                        const expectResourceTypes = new Set(['document', 'script', 'xhr', 'fetch']);\n                        await page.route('**/*', (route) => {\n                            const request = route.request();\n                            expectResourceTypes.has(request.resourceType()) ? route.continue() : route.abort();\n                        });\n                    },\n                });\n                await page.waitForSelector('.content');\n                response = await page.content();\n                await destroy();\n            } else {\n                throw new NotFoundError((error as Error).message);\n            }\n        }\n\n        const $ = load(response);\n\n        if ($('.posts-empty').length) {\n            throw new Error($('.posts-empty').text().trim() || 'No posts found');\n        }\n        if ($('.error-p').length) {\n            throw new Error($('.error-p span').text().trim() || 'Profile not found');\n        }\n\n        const username = $('.profile-info .username').text().trim();\n\n        const items = $('.posts-video .posts__video-item .posts__video-item-a')\n            .toArray()\n            .map((item) => {\n                const $item = $(item);","sourceCodeStart":83,"sourceCodeEnd":119,"githubUrl":"https://github.com/DIYgod/RSSHub/blob/bed535e0879dc71c5aff6f1e7bd1ac21ede40115/lib/routes/picuki/profile.ts#L83-L119","documentation":"Error \"${(error as Error).message}\" thrown in DIYgod/RSSHub.","triggerScenarios":"The underlying request to picuki fails and the upstream error message is rethrown.","commonSituations":"See trigger scenarios.","solutions":["Check that the requested Instagram profile exists and is public.","Retry later; picuki may be rate-limiting or blocking requests."],"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"}