Forum Discussion

🚨 This forum is archived and read-only. To submit a forum post, please visit our new Developer Forum. 🚨
richmengsix's avatar
richmengsix
Honored Guest
3 years ago

AndroidKeyStore not found on device

Hi, recently we have received multiple user reports that the logic of our Unity app has issues. Digging deeper, we realized that the error was related to Android KeyStore not found error. 

Our Unity app uses Andorid backend, which integrates with AWS Cognito SDK to store auth tokens. As you can see from the stack trace below, the token caching mechanicsm failed because of keystore issue. 

Have Meta Quest made any adjustment to the token store access? I couldn't find any resource to debug further. Unfortunately, this issue is disrupting user experiences, so any help is greatly appreciated. Thank you!

 

 

2023-05-02 12:50:58.975 17399-17913/? E/AWSKeyValueStore: Encryption Key cannot be generated successfully.
    com.amazonaws.internal.keyvaluestore.KeyNotGeneratedException: Cannot generate a key for alias: CognitoIdentityProviderCache.aesKeyStoreAlias in AndroidKeyStore
        at com.amazonaws.internal.keyvaluestore.KeyProvider23.generateKey(KeyProvider23.java:110)
        at com.amazonaws.internal.keyvaluestore.AWSKeyValueStore.generateEncryptionKey(AWSKeyValueStore.java:498)
        at com.amazonaws.internal.keyvaluestore.AWSKeyValueStore.put(AWSKeyValueStore.java:314)
        at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.cacheTokens(CognitoUser.java:2769)
        at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.handleChallenge(CognitoUser.java:3091)
        at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.handleChallenge(CognitoUser.java:3219)
        at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.access$2600(CognitoUser.java:133)
        at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser$37.run(CognitoUser.java:3257)
        at com.amazonaws.mobileconnectors.cognitoidentityprovider.continuations.AuthenticationContinuation.continueTask(AuthenticationContinuation.java:147)
        at com.owl3d.apputil.CognitoAuthModel$signInImpl$2$authenticationHandler$1.getAuthenticationDetails(AuthModel.kt:441)
        at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.getSession(CognitoUser.java:1032)
        at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.getSession(CognitoUser.java:970)
        at com.owl3d.apputil.CognitoAuthModel.signInImpl(AuthModel.kt:459)
        at com.owl3d.apputil.CognitoAuthModel.signIn(AuthModel.kt:377)
        at com.owl3d.apputil.AuthModelImp.signInCognito(AuthModel.kt:113)
        at com.owl3d.appdata.SignInViewModel.onSignInSubmittedImpl(SignInViewModel.kt:104)
        at com.owl3d.appdata.SignInViewModel.access$onSignInSubmittedImpl(SignInViewModel.kt:14)
        at com.owl3d.appdata.SignInViewModel$onSignInSubmitted$1.invokeSuspend(SignInViewModel.kt:99)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
        at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
     Caused by: java.security.KeyStoreException: AndroidKeyStore not found
        at java.security.KeyStore.getInstance(KeyStore.java:890)
        at com.amazonaws.internal.keyvaluestore.KeyProvider23.generateKey(KeyProvider23.java:81)
        at com.amazonaws.internal.keyvaluestore.AWSKeyValueStore.generateEncryptionKey(AWSKeyValueStore.java:498) 
        at com.amazonaws.internal.keyvaluestore.AWSKeyValueStore.put(AWSKeyValueStore.java:314) 
        at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.cacheTokens(CognitoUser.java:2769) 
        at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.handleChallenge(CognitoUser.java:3091) 
        at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.handleChallenge(CognitoUser.java:3219) 
        at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.access$2600(CognitoUser.java:133) 
        at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser$37.run(CognitoUser.java:3257) 
        at com.amazonaws.mobileconnectors.cognitoidentityprovider.continuations.AuthenticationContinuation.continueTask(AuthenticationContinuation.java:147) 
        at com.owl3d.apputil.CognitoAuthModel$signInImpl$2$authenticationHandler$1.getAuthenticationDetails(AuthModel.kt:441) 
        at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.getSession(CognitoUser.java:1032) 
        at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.getSession(CognitoUser.java:970) 
        at com.owl3d.apputil.CognitoAuthModel.signInImpl(AuthModel.kt:459) 
        at com.owl3d.apputil.CognitoAuthModel.signIn(AuthModel.kt:377) 
        at com.owl3d.apputil.AuthModelImp.signInCognito(AuthModel.kt:113) 
        at com.owl3d.appdata.SignInViewModel.onSignInSubmittedImpl(SignInViewModel.kt:104) 
        at com.owl3d.appdata.SignInViewModel.access$onSignInSubmittedImpl(SignInViewModel.kt:14) 
        at com.owl3d.appdata.SignInViewModel$onSignInSubmitted$1.invokeSuspend(SignInViewModel.kt:99) 
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) 
        at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) 
        at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571) 
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750) 
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678) 
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)