Hi Quinn, Thanks for your previous explanation. After further investigation, I realized that our Keychain item structure might be related to the issue, so I’d like to share more details in case this helps narrow down the cause. How we currently store data in a single Keychain item For the same Keychain item, we store two different business values: kSecValueData → contains the deviceId kSecAttrAccount → contains a dynamic userKey This means the item looks like this: Service: Account: // changes when user switches account Value: kSecAttrAccessible: kSecAttrAccessibleAfterFirstUnlock Potential problem we’ve discovered Because the userKey (stored in kSecAttrAccount) can change over time, our update operation may unintentionally rewrite or merge attributes in a way that leaves some users with inconsistent Keychain item metadata. For example: Version A of the app may write incorrect or incomplete attributes. Version B fixes the attributes, but existing users still keep the old item with mismatched attributes. Th
Topic:
Privacy & Security
SubTopic:
General
Tags: