[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) › PanicAbortReason

Defined in: [packages/common/src/Task.ts:2020](https://github.com/evoluhq/evolu/blob/a18269a1b822c670b507c6a9b73b23eed32551fe/packages/common/src/Task.ts#L2020)

A root-level abort caused by a defect.

Panic is a root-level abort caused by a defect: a thrown exception or
rejected Promise. Recoverable domain errors belong in Result. Unexpected or
unrecoverable conditions, such as storage engine errors the Task cannot
usefully handle, may throw or reject. [AbortError](https://evolu.dev/docs/api-reference/common/Task/variables/AbortError) is abort control
flow, not a defect.

[Run.onEvent](https://evolu.dev/docs/api-reference/common/Task/interfaces/Run#onevent) handler defects are different: event handlers are
monitoring code, so their defects are reported globally but do not panic the
root Run.

When Run observes a defect, it aborts the root Run and starts disposal
immediately. This prevents later Tasks from starting after the defect. A
Fiber rejects with AbortError whose reason is PanicAbortReason; an
[AbortableFiber](https://evolu.dev/docs/api-reference/common/Task/interfaces/AbortableFiber) returns that AbortError as an [Err](https://evolu.dev/docs/api-reference/common/Result/interfaces/Err).

## Extends

- [`AbortReason`](https://evolu.dev/docs/api-reference/common/Task/interfaces/AbortReason)

## Indexable

```ts
[key: string]: unknown
```

## Properties

<a id="defect"></a>

### defect

```ts
readonly defect: unknown;
```

Defined in: [packages/common/src/Task.ts:2022](https://github.com/evoluhq/evolu/blob/a18269a1b822c670b507c6a9b73b23eed32551fe/packages/common/src/Task.ts#L2022)

---

<a id="type"></a>

### type

```ts
readonly type: "PanicAbortReason";
```

Defined in: [packages/common/src/Task.ts:2021](https://github.com/evoluhq/evolu/blob/a18269a1b822c670b507c6a9b73b23eed32551fe/packages/common/src/Task.ts#L2021)

#### Overrides

[`UnknownError`](https://evolu.dev/docs/api-reference/common/Error/interfaces/UnknownError).[`type`](https://evolu.dev/docs/api-reference/common/Error/interfaces/UnknownError#type)