AcquireTokenSilent() is used to get the cached token tied to the users login identity. If expire and a refresh token is available, it will the refresh token to get the access token.
this all requires the user has successfully authenticated and the token was stored. Also if a server farm, a distributed cache is required.
show your configuration code for the initial authentication.