# `type.match_non_exhaustive`

Match does not cover every case.

Area 3, [Logic](../topics/logic.md); not declinable; the next step is usually the agent's.

```jadpo
function describe(state: DeliveryState) -> Label {
    return match state {
        DeliveryState.pending -> "Pending"
        DeliveryState.sent -> "Sent"
    }
}
```

```text
error: This `match` doesn't cover `DeliveryState.failed`
 --> main.jadpo:2:12
  |
2 |     return match state {
  |            ^^^^^^^^^^^ 1 case not matched
  reason: A `match` on an enum lists every variant, so a variant added later is caught at every `match` that has to consider it; `_` isn't allowed on `DeliveryState`.
  next: Add an arm for `DeliveryState.failed` (agent)
  rule: type.match_non_exhaustive
  help: https://jadpo.dev/docs/errors/type.match_non_exhaustive

check failed: 1 error, 2 files
```
