# `failure.outcome_success_value_required`

Success arm passes on a failure.

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

```jadpo
function invalid_success(key: LookupKey) -> LookupResult {
    return match lookup(key) {
        success(value) -> propagate
        LookupMissing -> "missing"
        LookupRefused -> "refused"
    }
}
```

```text
error: The success arm has no failure to pass on
 --> main.jadpo:3:9
  |
3 |         success(value) -> propagate
  |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ `propagate` on success
  reason: `propagate` passes a failure arm's failure on to the caller; the success arm has a value, which it gives, or a failure it `reject`s.
  next: Give the success value, or `reject` a failure (agent)
  rule: failure.outcome_success_value_required
  help: https://jadpo.dev/docs/errors/failure.outcome_success_value_required

check failed: 1 error, 2 files
```
