You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Dropping MultiJson in 1.0.3 broke Time serialization for apps using ActiveSupport #403
MultiJson.dump internally calls Hash#to_json, which ActiveSupport intercepts to run as_json on all values — converting Time to ISO 8601. JSON.dump bypasses ActiveSupport entirely and serializes Time via its C extension using Time#to_s.
Thank you for the detailed report and reproduction, @Morxander. And @stevenou — good catch on the defined?(::MultiJson) load-order race, that was an additional blind spot.
Activity
dblock commentedon Apr 16, 2026
@Morxander want to PR reverting that change?
stevenou commentedon Apr 16, 2026
related error:
numbata commentedon Apr 17, 2026
@dblock omw with reverting.
Fix Time serialization regression introduced by dropping MultiJson
Revert dropping MultiJson in favor of JSON.dump (#385)
numbata commentedon Apr 17, 2026
Thank you for the detailed report and reproduction, @Morxander. And @stevenou — good catch on the
defined?(::MultiJson)load-order race, that was an additional blind spot.Here's the rollout plan:
multijsondependency #385 and restoresMultiJson.dump, bringing serialization back to the 1.0.1 behavior. This will ship as 1.0.4 so affected apps can pin or upgrade immediately.Hash#to_jsoninstead ofJSON.dump, which goes through ActiveSupport's as_json chain. This will land in a future minor version.Both PRs include regression tests for Time serialization in flat and nested exposures to prevent this going forward.
numbata commentedon Apr 17, 2026
Reverted in 1.0.4, restoring the previous Time serialization behavior.
Closing this - proper removal of MultiJson is tracked in #404.
Fix Time serialization regression introduced by dropping MultiJson