Skip to content

Solid Queue only registering Supervisor, not workers/dispatcher/scheduler in Rails 8 / Solid Queue 1.2.1 #651

@PorterG2003

Description

@PorterG2003

Describe the bug

In development, running the Solid Queue CLI registers/starts a Supervisor process but the scheduler never loads config/recurring.yml. As a result, solid_queue_recurring_tasks and solid_queue_recurring_executions remain empty and no recurring jobs ever enqueue.

Environment

•	macOS Tahoe 26.0.1 (arm64)
•	Ruby 3.4.4 (+YJIT)
•	Rails 8.0.3
•	solid_queue 1.2.1 (bundle info solid_queue confirms)
•	DB: Postgres on Neon (separate DB used for Solid Queue)
•	SolidQueue::Process.connection.current_database => "atlas_queue"
•	Dev environment, running locally.

How I start Solid Queue
• Procfile entry used by bin/dev: jobs: bin/jobs
(bin/jobs is a thin wrapper: it requires ../config/environment and then SolidQueue::Cli.start(ARGV).)
• I also tried launching the CLI directly. See diagnostics below.

Relevant config & env

•	.env:

SOLID_QUEUE_RECURRING_SCHEDULE=config/recurring.yml
SOLID_QUEUE_CONFIG=config/queue.yml

•	config/queue.yml: defines dispatchers/workers; no explicit scheduler block.
•	config/recurring.yml: has a development: section with tasks (e.g., get_bookings every 1 minute and a cleanup task).

What I expect

The scheduler should read config/recurring.yml, persist tasks into solid_queue_recurring_tasks / solid_queue_recurring_executions, and enqueue on schedule.

What actually happens
• Only the Supervisor starts; no scheduler logs/messages and no recurring rows get created.

Diagnostics collected

1.	Env + file visibility (ok):

bin/rails r 'pp ENV.slice("SOLID_QUEUE_CONFIG","SOLID_QUEUE_RECURRING_SCHEDULE","SOLID_QUEUE_SKIP_RECURRING");
puts "Exists(SOLID_QUEUE_CONFIG)? #{File.exist?(ENV["SOLID_QUEUE_CONFIG"].to_s)}";
puts "Exists(SOLID_QUEUE_RECURRING_SCHEDULE)? #{File.exist?(ENV["SOLID_QUEUE_RECURRING_SCHEDULE"].to_s)}"'
Output:
{"SOLID_QUEUE_CONFIG"=>"config/queue.yml", "SOLID_QUEUE_RECURRING_SCHEDULE"=>"config/recurring.yml"}
Exists(SOLID_QUEUE_CONFIG)? true
Exists(SOLID_QUEUE_RECURRING_SCHEDULE)? true

2.	CLI “about” still boots only Supervisor (no scheduler):

bin/jobs about
Logs (abridged):
SolidQueue-1.2.1 Register Supervisor ...
SolidQueue-1.2.1 Fail claimed jobs ...
SolidQueue-1.2.1 Started Supervisor ...
(no scheduler or recurring log lines)

3.	After the runner is up, recurring tables remain empty:

bin/rails r 'puts "RecurringTask.count=#{SolidQueue::RecurringTask.count}";
puts "RecurringExecution.count=#{SolidQueue::RecurringExecution.count}";
pp SolidQueue::RecurringTask.limit(5).pluck(:key, :queue_name, :schedule);
pp SolidQueue::RecurringExecution.order(:run_at).limit(5).pluck(:task_key, :run_at)'
Output:
RecurringTask.count=0
RecurringExecution.count=0
[]
[]

Notes
• Tables exist with expected columns (e.g., solid_queue_recurring_tasks.key, solid_queue_recurring_executions.task_key).
• The same .env is visible to Rails and to the CLI (since bin/jobs requires the Rails environment first).
• I also tried setting:

SOLID_QUEUE_LOG_LEVEL=debug
SOLID_QUEUE_CONFIG=config/queue.yml
SOLID_QUEUE_RECURRING_SCHEDULE=config/recurring.yml
bin/jobs start

(If the CLI is supposed to print an explicit “loading recurring schedule” line, I don’t see it.)

Questions

1.	In 1.2.1, should the scheduler come up automatically with bin/jobs start when SOLID_QUEUE_RECURRING_SCHEDULE is set? Or is there another env/flag expected?
2.	Am I wrong in thinking the supervisor should fork into new processes?
3.     Is this issue isolated to this version or environment setup?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions