bensheldon/good_job · error · GoodJob::Error

Jobs must have a Queue Adapter

Error message

Jobs must have a Queue Adapter

What it means

Error "Jobs must have a Queue Adapter" thrown in bensheldon/good_job.

Source

Thrown at lib/good_job/bulk.rb:80

    class Buffer
      def initialize
        @values = []
      end

      def capture
        original_buffer = Bulk.current_buffer
        Bulk.current_buffer = self
        yield
      ensure
        Bulk.current_buffer = original_buffer
      end

      def add(active_jobs, queue_adapter: nil)
        new_pairs = Array(active_jobs).map do |active_job|
          raise ArgumentError, "Expected an ActiveJob::Base instance, got #{active_job.class}" unless active_job.is_a?(ActiveJob::Base)

          adapter = queue_adapter || active_job.class.queue_adapter
          raise Error, "Jobs must have a Queue Adapter" unless adapter

          [active_job, adapter]
        end
        @values.append(*new_pairs)

        true
      end

      def enqueue
        Bulk.unbuffer do
          active_jobs_by_queue_adapter.each do |adapter, jobs|
            jobs = jobs.reject(&:provider_job_id) # Do not re-enqueue already enqueued jobs

            if adapter.respond_to?(:enqueue_all)
              unbulkable_jobs, bulkable_jobs = jobs.partition do |job|
                job.respond_to?(:good_job_concurrency_key) && job.good_job_concurrency_key &&
                  (job.class.good_job_concurrency_config[:enqueue_limit] || job.class.good_job_concurrency_config[:total_limit])
              end

View on GitHub (pinned to 5fcde48f87)

Solutions

  1. Jobs enqueued via GoodJob::Bulk must use the GoodJob queue adapter.
  2. Set config.active_job.queue_adapter = :good_job or configure the adapter per job.

Example fix

config.active_job.queue_adapter = :good_job

When it happens

Trigger: Thrown at lib/good_job/bulk.rb:80 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/248e2be6aa1144d0. Report an issue: GitHub.