# `Faulty.Integrations.Oban`
[🔗](https://github.com/Hermanverschooten/faulty/blob/main/lib/faulty/integrations/oban.ex#L1)

Integration with Oban.

## How to use it

It is a plug and play integration: as long as you have Oban installed the
Faulty will receive and store the errors as they are reported.

### How it works

It works using Oban's Telemetry events, so you don't need to modify anything
on your application.

> #### A note on errors grouping {: .warning}
>
> All errors reported using `:error` or `{:error, any()}` as the output of
> your `perform/2` worker function are going to be grouped together (one group
> of those of errors per worker).
>
> The reason of that behaviour is that those errors do not generate an exception,
> so no stack trace is detected and they are stored as happening in the same
> place.
>
> If you want errors of your workers to be grouped as you may expect on other
> integrations, you should raise exceptions to report errors instead of gracefully
> returning an error value.

### Default context

By default we store some context for you on errors generated in an Oban
process:

* `job.id`: the unique ID of the job.

* `job.worker`: the name of the worker module.

* `job.queue`: the name of the queue in which the job was inserted.

* `job.args`: the arguments of the job being executed.

* `job.priority`: the priority of the job.

* `job.attempt`: the number of attempts performed for the job.

---

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