It looks correct to me. I setup a quick project with your config and could not reproduce the issue.
One thing you can try is setting the oban config level to debug
.
config :my_app, Oban,
engine: Oban.Engines.Basic,
queues: [default: 10],
log: :debug,
repo: ObanTest.Repo
You can then see the SQL oban is using to check for a conflicting job. Check this matches your expectations (especially scheduled_at
and states
)