Error with Oban.insert/2

I cannot use Oban.insert/2, it gives me this error:

** (MatchError) no match of right hand side value: []
    (oban 2.3.4) lib/oban/registry.ex:16: Oban.Registry.config/1
    (oban 2.3.4) lib/oban.ex:236: Oban.insert/2

this is my recovery email module:

defmodule Bank.Accounts.Jobs.RecoveryEmail do
  @moduledoc """
  Sends an email to user that forgot their password
  """
  use Bank.Jobs.Worker, queue: :mailing

  import Bank.Common.Wrapping

  alias Bank.{Accounts, Repo}
  alias Bank.Mailing

  def perform(%{"token" => token}) do
    %{user: user} =
      token
      |> Accounts.get_password_recovery()
      |> ok_unwrap()
      |> Repo.preload(:user)

    %{
      subject: "Recuperação de conta",
      template: "password_recovery",
      assigns: %{token: token},
      to_email: user.email
    }
    |> Mailing.send_single_mail()
  end

  def create_worker(%{token: token}) do
    %{token: token}
    |> __MODULE__.new()
    |> Oban.insert()
  end
end

jobs.ex:

defmodule Bank.Jobs.Worker do
  @moduledoc """
  Extension of Oban.Worker
  """

  defmacro __using__(opts \\ []) do
    quote do
      use Oban.Worker, unquote(opts)
      import Bank.Common.Wrapping

      def create_generic_worker(resource) do
        %{id: resource.id}
        |> __MODULE__.new()
        |> Oban.insert()
      end
    end
  end
end

if I need to provide more information, please, tell me.

This is a duplicate of this issue: https://github.com/sorentwo/oban/issues/396 .

I believe it came down to outdated configuration.

1 Like