DIYgod/RSSHub · error · Error

接口错误,错误代码:${responseBody.code},错误原因:${responseBody.msg}

Error message

接口错误,错误代码:${responseBody.code},错误原因:${responseBody.msg}

What it means

Thrown when the Nowcoder job-experience API returns a non-zero `code` after a POST request to `gw-c.nowcoder.com/api/sparta/job-experience/experience/job/list`. The payload includes `jobId`, `level: 3`, `order: 3`, `page: 1`. This is an upstream API business error, not a local validation failure.

Source

Thrown at lib/routes/nowcoder/interview.ts:44

    description: '牛客面试经验',
    maintainers: ['xia0ne'],
    handler,
    url: 'nowcoder.com/',
};
async function handler(ctx) {
    const jobId = ctx.req.param('jobId');

    const link = `https://gw-c.nowcoder.com/api/sparta/job-experience/experience/job/list?_=${Date.now()}`;
    const payload = {
        jobId,
        level: 3,
        order: 3,
        page: 1,
    };

    const responseBody = (await got.post(link, { json: payload })).data;
    if (responseBody.code !== 0) {
        throw new Error(`接口错误,错误代码:${responseBody.code},错误原因:${responseBody.msg}`);
    }

    const items = (responseBody.data.records ?? [])
        .map((r) => r?.momentData)
        .filter((m) => m?.uuid)
        .map((m) => ({
            title: m.title || m.content || '面经',
            description: m.content ?? '',
            link: `https://www.nowcoder.com/feed/main/detail/${m.uuid}`,
            pubDate: parseDate(m.createdAt),
        }));

    return {
        title: '牛客网-面试经验',
        link: 'https://www.nowcoder.com/interview/',
        description: '牛客网面试经验',
        item: items,
    };

View on GitHub (pinned to bed535e087)

Solutions

  1. Verify the `jobId` exists on nowcoder.com by browsing the interview experience page directly.
  2. Retry after a few minutes for transient failures.
  3. Inspect the raw API response by POSTing to the endpoint manually with the same payload.
  4. If the API moved, update the URL on line 36 of `lib/routes/nowcoder/interview.ts`.
Defensive patterns

Strategy: retry

Try / catch

try {
    const responseBody = (await got.post(link, { json: payload })).data;
    if (responseBody.code !== 0) {
        throw new Error(`接口错误,错误代码:${responseBody.code},错误原因:${responseBody.msg}`);
    }
} catch (e) {
    logger.error(`Nowcoder interview API failed for jobId=${jobId}: ${e}`);
    throw e;
}

Prevention

When it happens

Trigger: Requesting the nowcoder interview route with a `jobId` that the upstream API rejects, or when the API is temporarily unavailable. The jobId might not correspond to any active job listing.

Common situations: The jobId is stale or has been removed from Nowcoder. The API endpoint was restructured. Anti-crawler protection returns a structured error response. The gateway is under maintenance.

Related errors


AI-assisted analysis of DIYgod/RSSHub@bed535e087 (2026-08-12). Data as JSON: /api/errors/59ee1368d3b95e06. Report an issue: GitHub.