{"record":{"id":"e9ae58a9ebff7778","repo":"bensheldon/good_job","slug":"mass-action-is-not-a-valid-mass-action","errorCode":null,"errorMessage":"#{mass_action} is not a valid mass action","messagePattern":"#(.+?) is not a valid mass action","errorType":"http","errorClass":"ActionController::BadRequest","httpStatus":400,"severity":"error","filePath":"app/controllers/good_job/jobs_controller.rb","lineNumber":25,"sourceCode":"\n    ACTIONS = {\n      discard: \"discarded\",\n      reschedule: \"rescheduled\",\n      retry: \"retried\",\n      destroy: \"destroyed\",\n    }.freeze\n\n    rescue_from GoodJob::Job::AdapterNotGoodJobError,\n                GoodJob::Job::ActionForStateMismatchError,\n                with: :redirect_on_error\n\n    def index\n      @filter = JobsFilter.new(params)\n    end\n\n    def mass_update\n      mass_action = params.fetch(:mass_action, \"\").to_sym\n      raise ActionController::BadRequest, \"#{mass_action} is not a valid mass action\" unless mass_action.in?(ACTIONS.keys)\n\n      jobs = if params[:all_job_ids]\n               JobsFilter.new(params).filtered_query\n             else\n               job_ids = params.fetch(:job_ids, [])\n               Job.where(active_job_id: job_ids)\n             end\n\n      processed_jobs = jobs.map do |job|\n        case mass_action\n        when :discard\n          job.discard_job(DISCARD_MESSAGE)\n        when :reschedule\n          job.reschedule_job\n        when :retry\n          use_original_locale { job.retry_job }\n        when :destroy\n          job.destroy_job","sourceCodeStart":7,"sourceCodeEnd":43,"githubUrl":"https://github.com/bensheldon/good_job/blob/5fcde48f8765e69901ffa9c5a06122b19c73875f/app/controllers/good_job/jobs_controller.rb#L7-L43","documentation":"Error \"#{mass_action} is not a valid mass action\" thrown in bensheldon/good_job.","triggerScenarios":"Thrown at app/controllers/good_job/jobs_controller.rb:25 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass one of the supported mass actions (e.g. discard, retry, destroy) in the mass_action parameter.","Check the mass_action param in your request against the actions allowed by GoodJob::JobsController."],"exampleFix":"# Use a valid mass action, e.g. POST with mass_action=retry","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"}