# X_ABORTED

## Means

operation aborted

## Typical cause

the `AbortSignal` on `ctx` fired: client disconnected, or a deadline passed — including a job past its `timeout`, whose steps are refused from that point on

## Fix

add `throwIfAborted(ctx)` before expensive work, and make each vendor call with `outbound({ url, vendor, dial, deadlineMs })` from `@ultimat3/core/outbound`, which hears `ctx.signal` — unwind at the deadline instead of running past it

[Core and runtime](/error-codes#core-and-runtime)
