# X_VERIFY_STEP_TIMEOUT

## Means

a gate step ran past its deadline and was stopped

## Typical cause

A step of `x verify` did not finish within its deadline (5 minutes for a check, 8 for a test suite, or the step's own `stepTimeoutMs` entry in `x.verify.json`). The step is failed by name and every process it started is killed, so a hung step cannot consume a CI job's whole timeout and leave no trace. When a `bun test` was in flight, the finding names the file(s) still running — the ones `bun test` reports its killed workers were holding (`at`, `meta.inFlight[].stuck`) and the killed processes (`meta.killed`), and its `fix:` is `bun test <file>`. A batched step that had finished runs (`meta.finished`) and whose in-flight runs were no older than twice the slowest finished one (`meta.inFlight[].runningMs`) was not hung: the finding says it outgrew its deadline at this width, and its `fix:` reruns it wider (`--only <step> --workers <n>`) or raises its `stepTimeoutMs` entry

## Fix

`x verify --only unit --json` — reproduce the step alone; a step that legitimately needs longer states it under "stepTimeoutMs" in x.verify.json

[CLI and verify](/error-codes#cli-and-verify)
