# `Slap.SlateDB.Error`
[🔗](https://github.com/mjrusso/slap/blob/slap_slatedb-v0.2.0/slap_slatedb/lib/slap/slatedb/error.ex#L1)

An error returned by SlateDB.

`kind` is one of:

  * `:conflict` - a transaction conflict. Retry the transaction or give up.
  * `:closed` - the database is closed. `reason` is `:clean`, `:fenced`
    (another writer opened the same database), `:panic` or `:unknown`.
  * `:unavailable` - object storage or the network is unavailable. Retry
    later.
  * `:invalid` - the request was not valid, for example an empty key.
  * `:data` - stored data is corrupt or cannot be read.
  * `:internal` - an unexpected error inside SlateDB or this binding.
  * `:timeout` - no reply within the call's `:timeout`. The operation was not
    cancelled and may still complete.

# `kind`

```elixir
@type kind() ::
  :conflict | :closed | :unavailable | :invalid | :data | :internal | :timeout
```

# `t`

```elixir
@type t() :: %Slap.SlateDB.Error{
  __exception__: term(),
  kind: kind(),
  message: String.t(),
  reason: :clean | :fenced | :panic | :unknown | nil
}
```

---

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