[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:2021](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Task.ts#L2021)

Abort reason recorded when a defect panics the root [Run](https://evolu.dev/docs/api-reference/common/Task/interfaces/Run).

A defect is a thrown or rejected value other than [AbortError](https://evolu.dev/docs/api-reference/common/Task/variables/AbortError).
Recoverable domain errors belong in [Result](https://evolu.dev/docs/api-reference/common/Result/type-aliases/Result). Bugs and unrecoverable
failures, such as storage engine errors the [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task) cannot usefully
handle, may throw or reject.

[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](https://evolu.dev/docs/api-reference/common/Task/interfaces/Run) observes a defect, it aborts the root Run and starts disposal
immediately. This prevents later Tasks from starting after the defect. A
[Fiber](https://evolu.dev/docs/api-reference/common/Task/interfaces/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:2023](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Task.ts#L2023)

---

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

### type

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

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

#### Overrides

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