Ruby on Rails 8.1.3
Rails 8.1.3 has been released on March 24, 2026 — a regular bugfix release that addresses several issues across the framework core components, including Active Support, Active Record, Action View, and Active Storage.
The release comes one day after the security-focused 8.1.2.1 release and incorporates those fixes alongside a fresh batch of community-contributed patches. Here is what changed.
Active Support Fixes
Three notable fixes land in Active Support this cycle. The JSON gem coder encoder received a fix for custom object hash key serialization. When hash keys are custom objects whose as_json returns a Hash, the encoder now correctly calls to_s on the original key object rather than on the as_json result, fixing a long-standing edge case in serialization.
Inflection handling was also improved to better manage overlapping acronyms. The USD and USDC acronym combination, for example, now underscorizes correctly. Additionally, a Dalli 4.0+ warning when using MemCacheStore has been silenced.
Active Model Changes
A Ruby 4.0 delegator warning that appeared when calling inspect on attributes has been resolved. More critically, a NoMethodError when deserializing Type::Integer objects that were marshalled under Rails 8.0 has been fixed. The performance optimisation that replaced @range with @max/@min broke Marshal compatibility — objects serialised under 8.0 and deserialised under 8.1 would crash. This is now resolved.
Active Record Fixes
Several Active Record bugs were squashed. The insert_all and upsert_all log messages now work correctly when called on anonymous classes. The schema dumper now respects ignore_tables when dumping SQLite virtual tables. A fix restores the previous instrumenter after execute_or_skip to prevent swallowed sql.active_record notifications.
The minimum PostgreSQL version has been bumped to 9.5 due to usage of the array_position function. Table names containing hyphens are now supported, and column deduplication for SQLite3 and PostgreSQL virtual columns has been corrected so generated columns are no longer incorrectly treated as identical to regular columns.
PostgreSQL schema dumping was also fixed to properly handle schema-qualified table names in foreign key references that span different schemas.
Action View and Other Components
Action View received a fix for encoding errors when string locals contain non-ASCII characters, and collection caching now only forwards the expires_in argument if explicitly set. Active Storage fixed Blob content type predicate methods to handle nil gracefully. Railties added libvips to the generated CI configuration file.
Components Action Pack, Active Job, Action Mailer, Action Cable, Action Mailbox, and Action Text all saw no changes in this release.
Rails 8.1.3 is available now via gem install rails or by updating your Gemfile. As always, check the full changelog on GitHub for the complete list of changes before upgrading.