The Wire · Showcase
REDIS LISTENER RECONNECT BUGS FIXED ACROSS THREE CRITICAL PATCHES
By RepoJournal · Filed · About Rails
Rails killed off three separate gotchas in its pub/sub and database layers that could silently drop subscriptions, lose pending callbacks, and mutate caller data during reconnects.
The Redis listener thread was exiting permanently whenever the last channel got unsubscribed [1], which tanks any single-channel app or low-traffic service during deploy drains. That same listener was also torching pending subscribe callbacks on reconnect [2], leaving clients hanging indefinitely after connection drops. Separately, the `Time#advance` method was mutating the caller's options hash as a side effect [4], a nasty footgun for any code reusing the same options across multiple calls. On the database side, Rails now surfaces Postgres FATAL exceptions more clearly [3], distinguishing server-initiated disconnects from general statement errors so broken connections get caught immediately instead of silently on the next query. The Node.js build pipeline is jumping to v24 [5] after discovering downstream libraries already require it, leaving v22 (which is itself EOL) only as a stepping stone.
Action items
- → Upgrade Rails to pick up the Redis listener and Time#advance fixes rails/rails [immediate]
- → Bump your CI pipeline to Node.js v24 rails/buildkite-config [plan]
- → Audit any code reusing Time#advance options hashes across calls rails/rails [monitor]
References
- [1] Keep the Redis listener alive when the last channel is unsubscribed rails/rails
- [2] Keep pending subscribe confirmations across a Redis reconnect rails/rails
- [3] Report Postgres FATAL exceptions more clearly ↗ rails/rails
- [4] Merge pull request #57672 from 55728/fix-advance-mutates-options-hash rails/rails
- [5] Bump to Node.js v24 ↗ rails/buildkite-config
FAQ
- What changed in Rails on June 13, 2026?
- Rails killed off three separate gotchas in its pub/sub and database layers that could silently drop subscriptions, lose pending callbacks, and mutate caller data during reconnects.
- What should Rails teams do about it?
- Upgrade Rails to pick up the Redis listener and Time#advance fixes • Bump your CI pipeline to Node.js v24 • Audit any code reusing Time#advance options hashes across calls
- Which Rails repositories shipped on June 13, 2026?
- rails/rails, rails/buildkite-config