{"record":{"id":"5c5961cefeee9fe0","repo":"DIYgod/RSSHub","slug":"postlist-message","errorCode":null,"errorMessage":"${postList.message}","messagePattern":"\\$\\{postList\\.message\\}","errorType":"exception","errorClass":"Error","httpStatus":503,"severity":"error","filePath":"lib/routes/dxy/profile/thread.ts","lineNumber":77,"sourceCode":"        async () => {\n            const postListParams = {\n                userId,\n                type: '0',\n                pageNum: '1',\n                pageSize: limit,\n                serverTimestamp: Date.now(),\n                timestamp: Date.now(),\n                noncestr: generateNonce(8, 'number'),\n            };\n\n            const { data: postList } = await got(`${webBaseUrl}/bbs/newweb/user/post/page`, {\n                searchParams: {\n                    ...postListParams,\n                    sign: sign(postListParams),\n                },\n            });\n            if (postList.code !== 'success') {\n                throw new Error(postList.message);\n            }\n\n            return postList.data;\n        },\n        config.cache.routeExpire,\n        false\n    );\n\n    const list = postList.result.map((item) => {\n        const { postInfo, createdTime, entityId } = item;\n        return {\n            title: postInfo.subject,\n            description: postInfo.simpleBody,\n            pubDate: parseDate(createdTime, 'x'),\n            author: postInfo.postUser.nickname,\n            category: [postInfo.boardInfo.title],\n            link: `${webBaseUrl}/bbs/newweb/pc/post/${entityId}`,\n            postId: entityId,","sourceCodeStart":59,"sourceCodeEnd":95,"githubUrl":"https://github.com/DIYgod/RSSHub/blob/bed535e0879dc71c5aff6f1e7bd1ac21ede40115/lib/routes/dxy/profile/thread.ts#L59-L95","documentation":"Thrown by the DXY user profile thread route when the post list API (`/bbs/newweb/user/post/page`) returns a non-success `code`. This is the second API call in the route, fetching the user's posts after the user-info call succeeded. The API's own `message` is re-thrown verbatim.","triggerScenarios":"The userId is valid for user-info but the post query fails; the user has no posts and the API returns an error code instead of an empty list; signature or pagination parameters are rejected; rate limiting.","commonSituations":"User exists but has zero posts; the post/page endpoint has different rate limits than user-info; the pageSize or type parameter is invalid.","solutions":["Verify the user has posts by visiting their DXY profile thread page.","Retry after a delay.","Inspect the upstream message for details.","If persistent, check for RSSHub updates."],"exampleFix":"// before\nif (postList.code !== 'success') {\n    throw new Error(postList.message);\n}\n\n// after\nif (postList.code !== 'success') {\n    throw new Error(`DXY post list API error (userId=${userId}, code=${postList.code}): ${postList.message}`);\n}","handlingStrategy":"try-catch","validationCode":null,"typeGuard":"function isDxyPostListSuccess(resp: unknown): boolean {\n    return typeof resp === 'object' && resp !== null && (resp as any).code === 'success';\n}","tryCatchPattern":"try {\n    const feed = await fetch(`${rsshubUrl}/dxy/bbs/profile/thread/${userId}`);\n} catch (e) {\n    console.error(`DXY post list API error for userId ${userId}: ${e.message}`);\n    throw e;\n}","preventionTips":["Verify the user has posts by visiting their DXY profile thread page.","Retry after a delay — the post/page endpoint may have stricter rate limits.","Inspect the upstream message for specific error details.","If persistent, check for RSSHub updates to the API parameter format."],"tags":["dxy","api-error","signed-request","response-validation","user-profile"],"backgroundTag":null,"analyzedSha":"bed535e0879dc71c5aff6f1e7bd1ac21ede40115","analyzedAt":"2026-08-12T19:29:35.364Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}