#2594·Hangfire

ContinueJobWith/RecurringJob.AddOrUpdate queue-string overloads silently don't control real dispatch, only set Job.Queue metadata

Author: RudeySHCreated Sep 15, 2026Updated Sep 18, 2026

Calling BackgroundJob.ContinueJobWith(parentId, "myqueue", methodCall, options) or RecurringJob.AddOrUpdate(id, "myqueue", methodCall, cron) does not actually enqueue the resulting job onto myqueue. It runs on default instead. The dashboard and InvocationData.Queue still show myqueue, so this is easy to miss.

Root cause (checked against v1.8.0 and main):

Related issues, though none cover these specific overloads: #1900, #1695, #2226.

Repro: create a continuation with an explicit queue, then check HangFire.JobQueue for the resulting job. It ends up under default, not the queue that was passed in.

The 1.8.0 release notes describe "first class queue support" with an example almost identical to ContinueJobWith(id, "queue", methodCall). That makes this look like a real gap between the documented behavior and the shipped code, not intentional legacy behavior. Either fix these overloads to build new EnqueuedState(queue), or update the docs to state that [Queue] is the only reliable mechanism for continuations and recurring jobs.