{"record":{"id":"563b95bbf84fd884","repo":"bensheldon/good_job","slug":"must-provide-exactly-one-of-queue-job-class-or-l","errorCode":null,"errorMessage":"Must provide exactly one of queue, job_class, or label","messagePattern":"Must provide exactly one of queue, job_class, or label","errorType":"validation","errorClass":"ArgumentError","httpStatus":null,"severity":"error","filePath":"app/models/good_job/setting.rb","lineNumber":63,"sourceCode":"    end\n\n    def self.cron_key_disable(key)\n      enabled_setting = GoodJob::Setting.find_by(key: CRON_KEYS_ENABLED)\n      key_string = key.to_s\n      if enabled_setting&.value&.include?(key_string)\n        enabled_setting.value.delete(key_string)\n        enabled_setting.save!\n      end\n\n      disabled_setting = find_or_initialize_by(key: CRON_KEYS_DISABLED) do |record|\n        record.value = []\n      end\n      disabled_setting.value << key unless disabled_setting.value.include?(key_string)\n      disabled_setting.save!\n    end\n\n    def self.pause(queue: nil, job_class: nil, label: nil)\n      raise ArgumentError, \"Must provide exactly one of queue, job_class, or label\" unless [queue, job_class, label].one?(&:present?)\n\n      setting = find_or_initialize_by(key: PAUSES) do |record|\n        record.value = { \"queues\" => [], \"job_classes\" => [], \"labels\" => [] }\n      end\n\n      if queue\n        setting.value[\"queues\"] ||= []\n        setting.value[\"queues\"] << queue.to_s unless setting.value[\"queues\"].include?(queue.to_s)\n      elsif job_class\n        setting.value[\"job_classes\"] ||= []\n        setting.value[\"job_classes\"] << job_class.to_s unless setting.value[\"job_classes\"].include?(job_class.to_s)\n      else\n        setting.value[\"labels\"] ||= []\n        setting.value[\"labels\"] << label.to_s unless setting.value[\"labels\"].include?(label.to_s)\n      end\n      setting.save!\n    end\n","sourceCodeStart":45,"sourceCodeEnd":81,"githubUrl":"https://github.com/bensheldon/good_job/blob/5fcde48f8765e69901ffa9c5a06122b19c73875f/app/models/good_job/setting.rb#L45-L81","documentation":"Error \"Must provide exactly one of queue, job_class, or label\" thrown in bensheldon/good_job.","triggerScenarios":"Thrown at app/models/good_job/setting.rb:63 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass exactly one of :queue, :job_class, or :label when looking up the setting.","Remove extra selector arguments so exactly one is given."],"exampleFix":"GoodJob::Setting.queue_key(queue: 'default')","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"}