[Tim Peters]
fsrefs says an oid is "missing" if and only if it the oid doesn't appear in the .fs.index file. It could be a good idea to delete your .fs.index file, in case it got of synch with your .fs file with all the switching back and forth.
[Richard Jones]
Deleting the index had no impact.
Then, in your example: oid 0x0265be BTrees.IOBTree.IOBucket last updated: 2004-09-16 02:32:47.973507, tid=0x357DBF8CCAFDCCCL refers to invalid object: oid 0x02b6c2 missing: 'BTrees.IOBTree.IOBucket' oid 0x02b6c2 is not in your .fs.index, and so an attempt to load oid 0x02b6c2 should cause a POSKeyError. When you said: but when I dig in there, the IOBucket appears to just have strings as the values. And they're all present it wasn't clear what "when I dig in there" meant. What specifically did you do to inspect oid 0x02b6c2? Or you were looking at oid 0x0265be? ("the IOBucket" was ambiguous, since two distinct IOBuckets are mentioned in the output).