Thanks a bunch for your help. Our problem ended up being a uniqueness problem and these methods to debug ended up making it much easier to diagnose the problem.
Post
Replies
Boosts
Views
Activity
Thanks for the quick response! I'd like to add more information to clarify my post.
First, it is to my knowledge expected behavior that the access token we are storing would be lost after a device is stored. The problem becomes that I can never seem to find any token stored ever again.
Each time a user logs in we would store that token using kSecAdd with a CF dictionary containing a few properties such as
cfDictionary[kSecReturnData as String] = kCFBooleanTrue
cfDictionary[kSecReturnRef as String] = kCFBooleanTrue
The next time our app would need to retrieve this token using SecItemCopyMatching() and always returns errSecItemNotFound. This would have occurred after the backup has happened multiple times. This just appears to be the only thing these devices with this problem have in common.
This means that even after storing a new token to the same spot in the keychain which the code generally works correctly, the retrieval will never succeed.