# `Portals.Error`
[🔗](https://github.com/Ziinc/portals/blob/v0.1.0/lib/portals/error.ex#L1)

The single failure representation returned to every Portals caller
(FR-4). All non-`{:ok, value}` outcomes are `{:error, %Portals.Error{}}`.

# `kind`

```elixir
@type kind() ::
  :transport
  | :protocol
  | :remote
  | :checkout_timeout
  | :execution_timeout
  | :cancelled
  | :overload
  | :worker_exit
```

# `t`

```elixir
@type t() :: %Portals.Error{
  details: map(),
  kind: kind(),
  message: binary(),
  remote: map() | nil,
  stacktrace: [binary()] | nil
}
```

# `from_wire`

```elixir
@spec from_wire(map()) :: t()
```

Build a `%Portals.Error{}` from a decoded wire `ERROR` frame's error map.

# `known_kinds`

```elixir
@spec known_kinds() :: [kind()]
```

# `new`

```elixir
@spec new(kind(), binary(), keyword()) :: t()
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
