# SC110：探测路由一开始就处于活跃状态

> SC110（探测路由一开始就处于活跃状态）表示工作开始之前，probe 启动确认没有返回 inactiveStatus。修正探测路由或它的状态码配置。

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

`SC110` 表示 shutdown-check 发送测试请求之前，探测路由就已经报告有工作在进行。初始状态不对，探测路由就无法证明这项工作是由本次测试触发的。

| | |
| --- | --- |
| 诊断码 | `SC110` (FAIL) |
| 阶段 | 启动与进行中的工作 |
| CLI 退出码 | 1 |
| 含义 | 发送任何工作之前，工作启动探测路由没有返回非活跃状态码，因此无法用它证明工作何时开始。 |
| 输出信息 | `Work-start probe must return HTTP <inactiveStatus> before work begins; received <status>` |
| 首先检查 | 让探测路由在没有工作运行时返回 `inactiveStatus`，在工作进行中返回不同的 `activeStatus`。 |

## 为什么会出现？

- 探测路由总是返回 `activeStatus`。
- 之前某个请求触发的工作还在运行。
- `activeStatus` 和 `inactiveStatus` 写反了。
- 探测路由超时或无法访问。
- 探测路由跟踪的是并行测试共用的全局状态。

## 如何修复？

测试请求开始前，探测路由必须返回 `inactiveStatus`；只有在这次测试请求运行期间，才返回 `activeStatus`。

```json title="shutdown-check.json"
{
  "started": {
    "type": "probe",
    "path": "/test/work-active",
    "inactiveStatus": 204,
    "activeStatus": 200
  }
}
```

运行 shutdown-check 之前，先访问一下探测路由。如果它没有返回 `204`，修正路由，或者等旧的工作结束。如果这个路由暴露了应用的内部状态，只在测试环境中启用它。

## 如何验证探测路由？

在两种状态下分别检查：

1. 工作开始前，返回 `inactiveStatus`。
2. 故意暂停测试请求时，返回 `activeStatus`。
3. 工作结束后，再次返回 `inactiveStatus`。

下一次运行 shutdown-check 时，应该记录到 `work confirmed active`，而不是在 `service ready` 之后立即结束。

## 相关内容

- [使用 probe 启动确认（start barrier）](https://shutdown.jscrate.dev/zh/docs/in-flight-work#use-the-probe-barrier)
- [启动确认配置](https://shutdown.jscrate.dev/zh/docs/configuration#start-barrier)
- [SC111：测试请求始终未处于进行中](https://shutdown.jscrate.dev/zh/docs/codes/sc111)
