bensheldon/good_job · error · ArgumentError
Do not use `0` for cleanup intervals. Use `false` to disable
Error message
Do not use `0` for cleanup intervals. Use `false` to disable, or -1 to always run
What it means
Error "Do not use `0` for cleanup intervals. Use `false` to disable, or -1 to always run" thrown in bensheldon/good_job.
Source
Thrown at lib/good_job/cleanup_tracker.rb:12
# frozen_string_literal: true
module GoodJob # :nodoc:
# Tracks thresholds for cleaning up old jobs.
class CleanupTracker
attr_accessor :cleanup_interval_seconds,
:cleanup_interval_jobs,
:job_count,
:last_at
def initialize(cleanup_interval_seconds: false, cleanup_interval_jobs: false)
raise ArgumentError, "Do not use `0` for cleanup intervals. Use `false` to disable, or -1 to always run" if cleanup_interval_seconds == 0 || cleanup_interval_jobs == 0 # rubocop:disable Style/NumericPredicate
self.cleanup_interval_seconds = cleanup_interval_seconds
self.cleanup_interval_jobs = cleanup_interval_jobs
reset
end
# Increments job count.
# @return [Integer]
def increment
self.job_count += 1
end
# Whether a cleanup should be run.
# @return [Boolean]
def cleanup?
(cleanup_interval_jobs && job_count > cleanup_interval_jobs) ||
(cleanup_interval_seconds && last_at < Time.current - cleanup_interval_seconds) ||View on GitHub (pinned to 5fcde48f87)
Solutions
- Do not set cleanup intervals to 0.
- Use false to disable the cleanup or -1 to always run it.
Example fix
config.good_job.cleanup_interval_seconds = false
When it happens
Trigger: Thrown at lib/good_job/cleanup_tracker.rb:12 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/a0c10797f15e2671.
Report an issue: GitHub.