Skip to content

Pin json below 3 for Rails 7.1 and 8.0 - #813

Open
ceritium wants to merge 1 commit into
rails:mainfrom
ceritium:pin-json-for-older-rails
Open

ceritium wants to merge 1 commit into
rails:mainfrom
ceritium:pin-json-for-older-rails

Conversation

@ceritium

@ceritium ceritium commented Oct 5, 2026

Copy link
Copy Markdown

The rails_7_1 and rails_8_0 CI jobs are timing out after 15 minutes on every PR (e.g. https://github.com/rails/solid_queue/actions/runs/37324247004).

CI's bundle update railties now picks json 3.0.2, which removed the quirks_mode option that Active Support 7.1 and 8.0 still pass to JSON.generate. Serializing job arguments raises ArgumentError: unknown keyword: quirks_mode, the processes started by integration tests die, and the tests wait until the job is cancelled. Rails 7.2+ isn't affected.

This pins json < 3 for those two appraisals. Checked locally with Active Support 7.1.6 and 8.0.5.1: ActiveSupport::JSON.encode raises with json 3.0.2 and works with 2.21.2, which is what the pinned Gemfiles resolve to.

json 3 removed the quirks_mode option, which Active Support 7.1 and 8.0
still pass to JSON.generate. CI's `bundle update railties` picks json 3,
so serializing job arguments raises ArgumentError, the processes started
by integration tests die and those jobs hang until the 15-minute timeout.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant