← Daily
πŸ“ article rubyflow.com · October 15, 2026

Upgrading a Rails app from Ruby 3.4.4 to 4.0.3: what actually breaks

Ruby 4.0 is the first major bump in over a decade, but a Rails 8.x app usually upgrades in a day of focused work. Most of the pain is not in the language: it is gems that left the default set ( cgi , ostruct , logger , benchmark ), the Ractor::Port rewrite, Kernel#open("| cmd") no longer spawning a process, and a handful of changes that break tests rather than code ( Set#inspect output, Net::HTTP no longer defaulting Content-Type on bodies, new backtrace frames that confuse Sentry/Datadog gro...

Read on rubyflow.com →

More from this day

+ Feature your site