{"record":{"id":"3542e997c2cfb3a5","repo":"DIYgod/RSSHub","slug":"recommendlist-message","errorCode":null,"errorMessage":"${recommendList.message}","messagePattern":"\\$\\{recommendList\\.message\\}","errorType":"exception","errorClass":"Error","httpStatus":503,"severity":"error","filePath":"lib/routes/dxy/board.ts","lineNumber":72,"sourceCode":"        async () => {\n            const listParams = {\n                boardId,\n                postType: '0',\n                orderType: '1',\n                pageNum: '1',\n                pageSize: limit,\n                timestamp: Date.now(),\n                noncestr: generateNonce(8, 'number'),\n            };\n\n            const recommendList = await ofetch(`${phoneBaseUrl}/bbsapi/bbs/board/post/list`, {\n                query: {\n                    ...listParams,\n                    sign: sign(listParams),\n                },\n            });\n            if (recommendList.code !== 'success') {\n                throw new Error(recommendList.message);\n            }\n            return recommendList.data;\n        },\n        config.cache.routeExpire,\n        false\n    )) as PostListData;\n\n    const list = boardList.result.map((item) => ({\n        title: item.subject,\n        author: item.postUser.nickname,\n        category: [boardDetail.title],\n        link: `${webBaseUrl}/bbs/newweb/pc/post/${item.postId}`,\n        postId: item.postId,\n    }));\n\n    const items = await Promise.all(list.map((item) => getPost(item)));\n\n    return {","sourceCodeStart":54,"sourceCodeEnd":90,"githubUrl":"https://github.com/DIYgod/RSSHub/blob/bed535e0879dc71c5aff6f1e7bd1ac21ede40115/lib/routes/dxy/board.ts#L54-L90","documentation":"Thrown by the DXY board post list API call when the response `code` field is not 'success'. The route calls `/bbsapi/bbs/board/post/list` with signed parameters to fetch the paginated post list for a given boardId. A non-success code indicates the API rejected the request, and the API's own `message` is re-thrown.","triggerScenarios":"The boardId is valid for the detail endpoint but the post list query fails (e.g. board has no posts); signature validation fails on this specific endpoint; the postType or orderType parameters are invalid; rate limiting.","commonSituations":"The board exists but is empty or restricted; the list query parameters differ from what the API expects; transient server error.","solutions":["Verify the board has accessible posts by visiting the DXY BBS board page in a browser.","Retry after a delay — may be transient.","Inspect the upstream message for specific error details.","If persistent, check for RSSHub updates to the API parameter format."],"exampleFix":"// before\nif (recommendList.code !== 'success') {\n    throw new Error(recommendList.message);\n}\n\n// after\nif (recommendList.code !== 'success') {\n    throw new Error(`DXY board post list API error (boardId=${boardId}, code=${recommendList.code}): ${recommendList.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/board/${boardId}`);\n} catch (e) {\n    console.error(`DXY board post list API error for boardId ${boardId}: ${e.message}`);\n    throw e;\n}","preventionTips":["Verify the board has accessible posts by visiting the DXY BBS board page.","Retry after a delay — the post list endpoint may have separate rate limits.","Inspect the upstream message for specific error details.","If persistent, check for RSSHub updates to API parameters."],"tags":["dxy","api-error","signed-request","response-validation","bbs"],"backgroundTag":null,"analyzedSha":"bed535e0879dc71c5aff6f1e7bd1ac21ede40115","analyzedAt":"2026-08-12T19:29:35.364Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}