{"record":{"id":"76b4639bb95bf2b4","repo":"DIYgod/RSSHub","slug":"responsebody-code-responsebody-76b463","errorCode":null,"errorMessage":"接口错误，错误代码:${responseBody.code},错误原因:${responseBody.msg}","messagePattern":"接口错误，错误代码:(.+?),错误原因:(.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"lib/routes/nowcoder/schedule.ts","lineNumber":37,"sourceCode":"        {\n            source: ['nowcoder.com/'],\n            target: '/schedule',\n        },\n    ],\n    name: '校招日程',\n    maintainers: ['junfengP'],\n    handler,\n    url: 'nowcoder.com/',\n};\n\nasync function handler(ctx) {\n    const propertyId = ctx.req.param('propertyId') ?? 0;\n    const typeId = ctx.req.param('typeId') ?? 0;\n\n    const link = `https://www.nowcoder.com/school/schedule/data?token=&query=&typeId=${typeId}&propertyId=${propertyId}&onlyFollow=false&_=${Date.now()}`;\n    const responseBody = (await got(link)).data;\n    if (responseBody.code !== 0) {\n        throw new Error(`接口错误，错误代码:${responseBody.code},错误原因:${responseBody.msg}`);\n    }\n    const data = responseBody.data.companyList;\n\n    return {\n        title: '名企校招日程',\n        link: 'https://www.nowcoder.com/school/schedule',\n        description: '名企校招日程',\n        item: data.map((item) => {\n            let desc = `<tr><td><img src=\"${item.logo}\"></td></tr>`;\n            for (const each of item.schedules) {\n                desc += `<tr><td>${each.content}</td><td>${each.time}</td></tr>`;\n            }\n            return {\n                title: item.name,\n                description: `<table>${desc}</table>`,\n                pubDate: parseDate(item.createTime),\n                link: `https://www.nowcoder.com/school/schedule/${item.id}`,\n            };","sourceCodeStart":19,"sourceCodeEnd":55,"githubUrl":"https://github.com/DIYgod/RSSHub/blob/bed535e0879dc71c5aff6f1e7bd1ac21ede40115/lib/routes/nowcoder/schedule.ts#L19-L55","documentation":"Thrown when the Nowcoder campus recruitment schedule API (`www.nowcoder.com/school/schedule/data`) returns a non-zero `code`. The request includes `typeId` and `propertyId` parameters from the route path. This is an upstream API business error.","triggerScenarios":"Requesting the nowcoder schedule route with typeId/propertyId combinations that the upstream API rejects, or when the API is temporarily unavailable. The `token=` is hardcoded as empty.","commonSituations":"The typeId or propertyId values are invalid or no longer supported. The schedule API was restructured. The upstream returns an error due to maintenance or rate limiting.","solutions":["Verify the typeId and propertyId values are valid by browsing nowcoder.com/school/schedule directly.","Retry for transient upstream failures.","If the API moved, update the URL on line 35 of `lib/routes/nowcoder/schedule.ts`.","Inspect the raw API response in a browser."],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n    const responseBody = (await got(link)).data;\n    if (responseBody.code !== 0) {\n        throw new Error(`接口错误，错误代码:${responseBody.code},错误原因:${responseBody.msg}`);\n    }\n} catch (e) {\n    logger.error(`Nowcoder schedule API failed for typeId=${typeId}, propertyId=${propertyId}: ${e}`);\n    throw e;\n}","preventionTips":["Verify typeId/propertyId combinations on the nowcoder schedule page.","Cache schedule results per typeId/propertyId pair.","Log upstream error details for diagnosis."],"tags":["api-error","nowcoder","upstream","chinese-site"],"backgroundTag":null,"analyzedSha":"bed535e0879dc71c5aff6f1e7bd1ac21ede40115","analyzedAt":"2026-08-12T19:29:35.364Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}