I'm putting out this scenario I don't understand, yet, to see if anyone else might have experienced the same thing.
I have a demo with a central and peripheral that bond. Once they are bonded, they stay that way unless one of them de-powers or a button is pressed that erases stored keys.
I left them this way one night, having erased the keys before re-bonding them. Each side should have had exactly one stored key. When I came back the next day, the central had 7 keys stored and had asserted after the call to dm_security_setup_req due to the device table being full (DM_DEVICE_CONTEXT_FULL - 0x8043).
Does anyone have an idea how the central could have accumulated 7 keys when it was running overnight in a connection with a peripheral it was bonded with? It only bonds with this particular peripheral that is using a custom base UUID and there's only one of them within range. The peripheral was found to only have a single key stored, as expected.