# SC203：进行中请求的响应体错误

> SC203（进行中请求的响应体错误）表示收到 SIGTERM 时正在处理的请求结束了，但响应中没有 workload.bodyIncludes 指定的文本。检查处理函数和配置。

Source: https://shutdown.jscrate.dev/zh/docs/codes/sc203
Last updated: 2026-09-23

`SC203` 表示响应返回了预期的状态码，但没有包含 `workload.bodyIncludes` 中的文本。请求正常结束了，但结果无法证明预期的工作已经完成。

| | |
| --- | --- |
| 诊断码 | `SC203` (FAIL) |
| 阶段 | 进行中请求的响应 |
| CLI 退出码 | 1 |
| 含义 | 收到 SIGTERM 时正在运行的请求完成了，但响应体中不包含 `workload.bodyIncludes`。 |
| 输出信息 | `In-flight response did not contain <workload.bodyIncludes>` |
| 首先检查 | 确认处理函数在关闭期间会写出完整的响应，并且 `bodyIncludes` 与它实际发送的内容一致。 |

## 为什么会出现？

- 处理函数返回了一个带成功状态码的错误页面。
- 关闭过程跳过了操作的一部分。
- 响应文本改了，配置没有跟着改。
- 比较时大小写或空白字符不一致。
- 期望的文本出现在 1 MiB 响应捕获上限之后。

## 如何修复？

正常运行一次这个路由，选一段简短、稳定、只在成功后才出现的文本：

```json title="shutdown-check.json"
{
  "workload": {
    "path": "/reports/export",
    "status": 200,
    "bodyIncludes": "export complete",
    "started": { "type": "probe", "path": "/test/work-active" }
  }
}
```

匹配区分大小写。避免使用 ID、时间戳或其他每次运行都会变化的值。

## 如何确认已修复？

查看真实的响应体，确认这个标记会在工作成功后出现。下一次运行应该以预期的状态码完成，不再出现 SC203。

如果响应超过 1 MiB，选一个更靠前的标记，或者通过一个专门构建、响应更小的接口来测试结果。shutdown-check 只能检查捕获到的前面那部分内容。

## 相关内容

- [证明操作已完成](https://shutdown.jscrate.dev/zh/docs/in-flight-work#prove-that-the-operation-completed)
- [`workload` 配置](https://shutdown.jscrate.dev/zh/docs/configuration#workload)
- [SC202：响应状态码错误](https://shutdown.jscrate.dev/zh/docs/codes/sc202)
