SC203 表示响应返回了预期的状态码,但没有包含 workload.bodyIncludes 中的文本。请求正常结束了,但结果无法证明预期的工作已经完成。
| 诊断码 | SC203 FAIL |
|---|---|
| 阶段 | 进行中请求的响应 |
| CLI 退出码 | 1 |
| 含义 | 收到 SIGTERM 时正在运行的请求完成了,但响应体中不包含 workload.bodyIncludes。 |
| 输出信息 |
|
| 首先检查 | 确认处理函数在关闭期间会写出完整的响应,并且 bodyIncludes 与它实际发送的内容一致。 |
为什么会出现?
- 处理函数返回了一个带成功状态码的错误页面。
- 关闭过程跳过了操作的一部分。
- 响应文本改了,配置没有跟着改。
- 比较时大小写或空白字符不一致。
- 期望的文本出现在 1 MiB 响应捕获上限之后。
如何修复?
正常运行一次这个路由,选一段简短、稳定、只在成功后才出现的文本:
{
"workload": {
"path": "/reports/export",
"status": 200,
"bodyIncludes": "export complete",
"started": { "type": "probe", "path": "/test/work-active" }
}
}匹配区分大小写。避免使用 ID、时间戳或其他每次运行都会变化的值。
如何确认已修复?
查看真实的响应体,确认这个标记会在工作成功后出现。下一次运行应该以预期的状态码完成,不再出现 SC203。
如果响应超过 1 MiB,选一个更靠前的标记,或者通过一个专门构建、响应更小的接口来测试结果。shutdown-check 只能检查捕获到的前面那部分内容。