# `Arrow.DecodeError`

Error returned by the decoders (`Arrow.Ipc.Stream.decode/1`,
`Arrow.Ipc.File.decode/1`, `Arrow.Json.decode/1`) and raised by their
`decode!/1` variants.

The `:kind` field classifies the failure:

- `:unsupported` — the input uses an Arrow feature this library
  deliberately does not implement: Union, `BinaryView` / `Utf8View`,
  `ListView` / `LargeListView`, `RunEndEncoded`, `Float16`, IPC body
  compression, big-endian payloads, delta dictionaries, Tensor /
  SparseTensor messages.
- `:malformed` — the input is corrupt, truncated, or internally
  inconsistent. Legacy (pre-0.15 / V4) IPC file framing also surfaces
  here, as it is indistinguishable from a corrupt Block offset.

# `kind`

```elixir
@type kind() :: :unsupported | :malformed
```

# `t`

```elixir
@type t() :: %Arrow.DecodeError{
  __exception__: term(),
  kind: kind(),
  message: String.t()
}
```

---

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