You're using 'self keyHash: key' to find a specific bucket that should contain that object. But 'self keyHash: key' may (and probably will) answer a different number for the same object each time it is materialized from the database unless it is somehow using the MagmaOID in place of the identityHash.
Right, you definitely cannot use Squeak's #identityHash in the equation.
Hm, let me about this a few days, I think an easy solution will appear..
- Chris