# `Runic.Workflow.RunnableFailed`
[🔗](https://github.com/zblanco/runic/blob/main/lib/workflow/runnable_failed.ex#L1)

Event recording that a runnable failed permanently (retries exhausted).

Fields:

- `attempts` — total number of execution attempts (initial + retries)
- `failure_action` — the `on_failure` action taken: `:halt` or `:skip`
- `error` — the error term from the last failed attempt

# `t`

```elixir
@type t() :: %Runic.Workflow.RunnableFailed{
  attempts: non_neg_integer(),
  error: term(),
  failed_at: integer(),
  failure_action: :halt | :skip,
  node_hash: non_neg_integer(),
  runnable_id: term()
}
```

---

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