bensheldon/good_job · error · ArgumentError
Must provide at most one of active_job, queue, job_class, or
Error message
Must provide at most one of active_job, queue, job_class, or label
What it means
Error "Must provide at most one of active_job, queue, job_class, or label" thrown in bensheldon/good_job.
Source
Thrown at app/models/good_job/setting.rb:105
if queue
return unless setting.value["queues"]&.include?(queue.to_s)
setting.value["queues"].delete(queue.to_s)
elsif job_class
return unless setting.value["job_classes"]&.include?(job_class.to_s)
setting.value["job_classes"].delete(job_class.to_s)
else
return unless setting.value["labels"]&.include?(label.to_s)
setting.value["labels"].delete(label.to_s)
end
setting.save!
end
def self.paused?(active_job: nil, queue: nil, job_class: nil, label: nil)
raise ArgumentError, "Must provide at most one of active_job, queue, job_class, or label" if [active_job, queue, job_class, label].many?(&:present?)
if active_job
pauses = paused
return :queue_name_paused if pauses[:queues].include?(active_job.queue_name.to_s)
return :job_class_paused if pauses[:job_classes].include?(active_job.class.to_s)
labels = active_job.respond_to?(:good_job_labels) ? Array(active_job.good_job_labels) : []
labels = labels.filter_map { |label| label.to_s.presence }.uniq
return :label_paused if (labels & pauses[:labels]).any?
false
elsif queue
queue.in? paused(:queues)
elsif job_class
job_class.in? paused(:job_classes)
elsif labelView on GitHub (pinned to 5fcde48f87)
Solutions
- Pass at most one of :active_job, :queue, :job_class, or :label.
- Remove the extra selector arguments so only one identifier is used.
Example fix
GoodJob::Setting.value(:good_job_pause, active_job: job)
When it happens
Trigger: Thrown at app/models/good_job/setting.rb:105 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of bensheldon/good_job@5fcde48f87 (2026-08-23).
Data as JSON: /api/errors/bf42f1ecf49ee28a.
Report an issue: GitHub.