Fix serialization error when caching get_all results#978
Merged
jnunemaker merged 1 commit intomainfrom Feb 19, 2026
Merged
Conversation
f339641 to
8b2cc62
Compare
Remove default_proc from result hashes in active_record, mongo, and sequel adapters before returning from get_all. The default_proc is used as a convenience during hash construction but prevents Marshal.dump serialization when results are cached by ActiveSupportCacheStore. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
8b2cc62 to
0f3ba42
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fix
TypeError: can't dump hash with default procerror when caching get_all results with ActiveSupportCacheStore.The active_record, mongo, and sequel adapters create result hashes with
Hash.new { }for convenient auto-initialization during construction. However, the default_proc prevents Marshal.dump serialization when the cache layer tries to persist the results.Changes
Remove
default_procfrom result hashes before returning fromget_allin all three affected adapters. The default_proc is only needed during construction and is no longer necessary once the hash is fully populated.🤖 Generated with Claude Code