[API reference](https://evolu.dev/docs/api-reference) › [@evolu/common](https://evolu.dev/docs/api-reference/common) › [Task](https://evolu.dev/docs/api-reference/common/Task) › AbortMask

```ts
const AbortMask: brand("AbortMask", NonNegativeInt);
```

Defined in: [packages/common/src/Task.ts:945](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Task.ts#L945)

Abort mask depth for a [Run](https://evolu.dev/docs/api-reference/common/Task/interfaces/Run) or [Fiber](https://evolu.dev/docs/api-reference/common/Task/interfaces/Fiber).

- `0` — abortable (default)
- `>= 1` — inside [unabortable](https://evolu.dev/docs/api-reference/common/Task/variables/unabortable), abort requests are ignored

The mask tracks nested unabortable regions. When abort is requested, the
signal only propagates if `mask === 0`.

- [unabortable](https://evolu.dev/docs/api-reference/common/Task/variables/unabortable) increments the mask — Task becomes protected
- [unabortableMask](https://evolu.dev/docs/api-reference/common/Task/functions/unabortableMask) provides `restore` to restore the previous mask
- Tasks inherit their parent's mask by default

This enables nested resource lifecycle patterns where each level can have its
own abortable section while outer acquisitions remain protected.

UI/debugging tools can use this to visually distinguish protected Tasks
(e.g., different icon or color) and explain why abort requests are ignored.