title: MSAL UserTokenCache not persisted on Android
body: <p>I've attempted to authenticate users using Azure B2C and MSAL, but have stumbled upon some user experience issues.</p>
  
  <p>When I debug my app, I usually don't have to sign in as I'm already authenticated and the token is still valid. However, if I switch from Debug to Release and then test the app, the AquireTokenSilentAsync method doesn't seem able to retrieve a valid token from the UserTokenCache. My assumption is that the UserTokenCache is cleared every time the app is closed. Somehow this doesn't happen in Debug mode, I guess it's because the cache is persisted between deploys.</p>
  
  <p>I'm getting the authentication result this way, but have tried different overloads without any success.</p>
  
  <blockquote>
    <p>AuthenticationResult ar = await
    App.PCApplication.AcquireTokenSilentAsync(App.Scopes, "",
    App.Authority, App.SignUpSignInpolicy, false);</p>
  </blockquote>
  
  <p>So, when I sign in, close and re-enter the app I still need to login again.</p>
  
  <p>I'm fully aware MSAL is still in preview, but I haven't been able to find any issues (yet) related to this behaviour. Is this a known issue and is there a workaround available? </p>
  
  <p>Looking at the MSAL source code, I can clearly see that the UserTokenCache is using Android SharePreferences for persistance, and this works perfectly in debug mode. So, either this is a bug/missing implementation, or I'm failing to see something obvious..</p>