Error updating oban from 2.14 to 2.17 expected :engine to be a loaded module, got Oban.Pro.Queue.SmartEngine

Hello, I am trying to do a huge bump on a codebase from Oban 2.6 to 2.17 and Oban Pro from 0.12 to 1.3, after following the instructions on the hexdocs page, between updating from 2.14 to 2.17 I got this error:

** (Mix) Could not start application catalog: Catalog.Application.start(:normal, []) returned an error: shutdown: failed to start child: Oban
    ** (EXIT) an exception was raised:
        ** (ArgumentError) expected :engine to be a loaded module, got: Oban.Pro.Queue.SmartEngine
            (oban 2.17.3) lib/oban/config.ex:91:
            (oban 2.17.3) lib/oban.ex:389: Oban.start_link/1
            (stdlib 3.17.2) supervisor.erl:414: :supervisor.do_start_child_i/3
            (stdlib 3.17.2) supervisor.erl:400: :supervisor.do_start_child/2
            (stdlib 3.17.2) supervisor.erl:384: anonymous fn/3 in :supervisor.start_children/2
            (stdlib 3.17.2) supervisor.erl:1250: :supervisor.children_map/4
            (stdlib 3.17.2) supervisor.erl:350: :supervisor.init_children/2
            (stdlib 3.17.2) gen_server.erl:423: :gen_server.init_it/2
            (stdlib 3.17.2) gen_server.erl:390: :gen_server.init_it/6
            (stdlib 3.17.2) proc_lib.erl:226: :proc_lib.init_p_do_apply/3

Oban 2.6 used SmartEngine before and was compiling just fine, I did not change this. How should I proceed? I have no idea. I am not used to posting in forums, please let me know what other info is useful.


  • erlang
  • elixir 1.14.1-otp-24

Hi, the step you seem to be missing is naming the Smart Engine. We’re going to make a guide out of this to simplify.

Here is a link to the docs that will help:

Your many-versions-update is a big undertaking!
If you need any further assistance, don’t hesitate to ask.


Welcome @guaranull to the elixir forum!

Here is a link to the updated Oban Pro docs: