# `failure.outcome_unknown_arm`

Outcome arm names a failure the call cannot produce.

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

```jadpo
type LookupTimedOut = Failure {
    kind: FailureKind.rejected
}

function unknown_failure(key: LookupKey) -> LookupResult {
    return match lookup(key) {
        success(value) -> value
        LookupMissing -> "missing"
        LookupRefused -> "refused"
        LookupTimedOut -> "timed out"
    }
}
```

```text
error: `lookup(...)` can't fail with `LookupTimedOut`
 --> main.jadpo:10:9
   |
10 |         LookupTimedOut -> "timed out"
   |         ^^^^^^^^^^^^^^ never happens here
  reason: `lookup(...)` fails with `LookupMissing` and `LookupRefused`, so an arm for anything else never runs.
  next: Remove this arm (agent)
  rule: failure.outcome_unknown_arm
  help: https://jadpo.dev/docs/errors/failure.outcome_unknown_arm

check failed: 1 error, 2 files
```
