# `LibTmux.Error`
[🔗](https://github.com/libtmux/libtmux-elixir/blob/b72452c198917433229bdc266a68c163541b6127/lib/libtmux/error.ex#L1)

An inspectable failure with its phase and certainty about effects.

`retryable` describes a recovery option; it never authorizes replay of a
mutation. Diagnostic details must stay within the producing operation's
byte budget. Bang functions raise this same structure.

# `certainty`

```elixir
@type certainty() :: :no_write | :acknowledged | :observed | :unknown
```

Evidence about effects, independent of whether cleanup or arbitrary program completion is proved.

# `path_component`

```elixir
@type path_component() :: atom() | non_neg_integer() | LibTmux.Ref.id()
```

A field, array index or observed identity locating an error; links retain their contextual tuple ID.

# `t`

```elixir
@type t() :: %LibTmux.Error{
  __exception__: term(),
  certainty: certainty(),
  details: map(),
  kind: atom(),
  path: [path_component()],
  phase: atom(),
  retryable: boolean()
}
```

A structured API failure. Kind and phase are extensible; retryable never permits automatic mutation replay.

---

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