DIYgod/RSSHub · error · Error
${detail.message}
Error message
${detail.message} What it means
Thrown by the DXY special topic route when the special detail API (`/newh5/bbs/special/detail`) returns a non-success `code`. The route fetches metadata for a 'special' (curated topic) board using signed parameters with `requestType: 'h5'`. If the specialId is invalid, the signature is rejected, or the API is unavailable, the API's own `message` is re-thrown.
Source
Thrown at lib/routes/dxy/special.ts:47
const specialId = ctx.req.param('specialId');
const { limit = '10' } = ctx.req.query();
const specialDetail = (await cache.tryGet(`dxy:special:detail:${specialId}`, async () => {
const detailParams = {
specialId,
requestType: 'h5',
timestamp: Date.now(),
noncestr: generateNonce(8, 'number'),
};
const detail = await ofetch(`${phoneBaseUrl}/newh5/bbs/special/detail`, {
query: {
...detailParams,
sign: sign(detailParams),
},
});
if (detail.code !== 'success') {
throw new Error(detail.message);
}
return detail.data;
})) as SpecialBoardDetail;
const recommendList = (await cache.tryGet(
`dxy:special:recommend-list-v3:${specialId}`,
async () => {
const listParams = {
specialId,
requestType: 'h5',
pageNum: '1',
pageSize: limit,
timestamp: Date.now(),
noncestr: generateNonce(8, 'number'),
};
const recommendList = await ofetch(`${phoneBaseUrl}/newh5/bbs/special/post/recommend-list-v3`, {
query: {View on GitHub (pinned to bed535e087)
Solutions
- Verify the specialId by visiting the DXY special topic page in a browser.
- Retry — may be transient.
- Inspect the upstream message for specific error details.
- If persistent, check for RSSHub updates to the API parameter format.
Example fix
// before
if (detail.code !== 'success') {
throw new Error(detail.message);
}
// after
if (detail.code !== 'success') {
throw new Error(`DXY special detail API error (specialId=${specialId}, code=${detail.code}): ${detail.message}`);
} Defensive patterns
Strategy: try-catch
Type guard
function isDxySpecialDetailSuccess(resp: unknown): boolean {
return typeof resp === 'object' && resp !== null && (resp as any).code === 'success';
} Try / catch
try {
const feed = await fetch(`${rsshubUrl}/dxy/bbs/special/${specialId}`);
} catch (e) {
console.error(`DXY special detail API error for specialId ${specialId}: ${e.message}`);
throw e;
} Prevention
- Verify the specialId by visiting the DXY special topic 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 or signing algorithm.
When it happens
Trigger: The specialId doesn't exist or has been removed; the request signature is invalid; the h5 request type is no longer supported; rate limiting or maintenance.
Common situations: Incorrect specialId from an outdated URL; DXY changed the special detail API endpoint or signing requirements; transient server error.
Related errors
- ${detail.message}
- ${recommendList.message}
- ${userInfo.message}
- ${postList.message}
- Invalid API response: ${JSON.stringify(response)}
AI-assisted analysis of DIYgod/RSSHub@bed535e087 (2026-08-12).
Data as JSON: /api/errors/c1e11051ee734208.
Report an issue: GitHub.