# `Faulty.Error`
[🔗](https://github.com/Hermanverschooten/faulty/blob/main/lib/faulty/schemas/error.ex#L1)

Schema to store an error or exception recorded by Faulty.

It stores a kind, reason and source code location to generate a unique
fingerprint that can be used to avoid duplicates.

The fingerprint includes a normalized version of the error reason to ensure
proper grouping of similar errors while separating different error types.
See `Faulty.Fingerprint` for the fingerprinting algorithm details.

# `status`

```elixir
@type status() :: :resolved | :unresolved
```

# `t`

```elixir
@type t() :: %Faulty.Error{
  fingerprint: String.t() | nil,
  kind: String.t() | nil,
  last_occurrence_at: DateTime.t() | nil,
  reason: String.t() | nil,
  source_function: String.t() | nil,
  source_line: String.t() | nil,
  status: status()
}
```

# `has_source_info?`

Returns if the Error has information of the source or not.

Errors usually have information about in which line and function occurred, but
in some cases (like an Oban job ending with `{:error, any()}`) we cannot get
that information and no source is stored.

---

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