Raise or return this error from an action to snooze the Oban job.
Snoozing re-schedules the job to run again after a delay without consuming a retry attempt. This is useful for transient conditions such as rate limits or temporary external service unavailability.
Works from both the main action and the on_error action of a trigger, as
well as from scheduled actions.
Fields
snooze_for- integer number of seconds to delay before retrying
Examples
# Via raise (works anywhere in action code):
raise AshOban.Errors.SnoozeJob, snooze_for: 60
# Via add_error (idiomatic inside a change function):
Ash.Changeset.add_error(changeset, AshOban.Errors.SnoozeJob.exception(snooze_for: 60))
# Via error tuple return:
{:error, AshOban.Errors.SnoozeJob.exception(snooze_for: 30)}
Summary
Functions
Create an Elixir.AshOban.Errors.SnoozeJob without raising it.