---
url: https://scruple.dev/rules/async/require-cancellation-propagation.md
description: Require accepted cancellation to be forwarded.
---

# async/require-cancellation-propagation

Require accepted cancellation to be forwarded.

## What it checks

Functions with an explicit AbortSignal contract should forward that signal, directly or through composition, to platform fetch calls.

## Rule metadata

* Package: `@scruple/async`
* Category: Cancellation
* Tags: abort-signal, fetch, propagation
* Default threshold: `0.9`
* Minimum confidence: `0.7`

## Examples

### Reported

```ts
async function load(signal: AbortSignal) { return fetch("/data"); }
```

### Accepted

```ts
async function load(signal: AbortSignal) { return fetch("/data", { signal }); }
```
