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

```ts
type TaskWithError<TTask> = TTask & [InferTaskErr<TTask>] extends [never]
  ? never
  : unknown;
```

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

A [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task) whose error type is not `never`.

Used by [Run.orThrow](https://evolu.dev/docs/api-reference/common/Task/interfaces/Run#orthrow) to accept only Tasks that can return a declared
[Err](https://evolu.dev/docs/api-reference/common/Result/interfaces/Err). Tasks without declared [Result](https://evolu.dev/docs/api-reference/common/Result/type-aliases/Result) errors should use
[Run.ok](https://evolu.dev/docs/api-reference/common/Task/interfaces/Run#ok) instead.