{"record":{"id":"a2794209273c899b","repo":"bensheldon/good_job","slug":"expected-an-activejob-base-instance-got-active","errorCode":null,"errorMessage":"Expected an ActiveJob::Base instance, got #{active_job.class}","messagePattern":"Expected an ActiveJob::Base instance, got #(.+?)","errorType":"exception","errorClass":"ArgumentError","httpStatus":null,"severity":"error","filePath":"lib/good_job/bulk.rb","lineNumber":77,"sourceCode":"      self.current_buffer = original_buffer\n    end\n\n    class Buffer\n      def initialize\n        @values = []\n      end\n\n      def capture\n        original_buffer = Bulk.current_buffer\n        Bulk.current_buffer = self\n        yield\n      ensure\n        Bulk.current_buffer = original_buffer\n      end\n\n      def add(active_jobs, queue_adapter: nil)\n        new_pairs = Array(active_jobs).map do |active_job|\n          raise ArgumentError, \"Expected an ActiveJob::Base instance, got #{active_job.class}\" unless active_job.is_a?(ActiveJob::Base)\n\n          adapter = queue_adapter || active_job.class.queue_adapter\n          raise Error, \"Jobs must have a Queue Adapter\" unless adapter\n\n          [active_job, adapter]\n        end\n        @values.append(*new_pairs)\n\n        true\n      end\n\n      def enqueue\n        Bulk.unbuffer do\n          active_jobs_by_queue_adapter.each do |adapter, jobs|\n            jobs = jobs.reject(&:provider_job_id) # Do not re-enqueue already enqueued jobs\n\n            if adapter.respond_to?(:enqueue_all)\n              unbulkable_jobs, bulkable_jobs = jobs.partition do |job|","sourceCodeStart":59,"sourceCodeEnd":95,"githubUrl":"https://github.com/bensheldon/good_job/blob/5fcde48f8765e69901ffa9c5a06122b19c73875f/lib/good_job/bulk.rb#L59-L95","documentation":"Error \"Expected an ActiveJob::Base instance, got #{active_job.class}\" thrown in bensheldon/good_job.","triggerScenarios":"Thrown at lib/good_job/bulk.rb:77 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Enqueue only ActiveJob::Base instances with GoodJob::Bulk.","Pass job instances, not classes or other objects, to GoodJob::Bulk.enqueue."],"exampleFix":"GoodJob::Bulk.enqueue(MyJob.new(args), OtherJob.new)","handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"5fcde48f8765e69901ffa9c5a06122b19c73875f","analyzedAt":"2026-08-23T14:55:11.399Z","schemaVersion":2},"datasetVersion":"2026-08-23T16:17:53.355Z"}