Not sure this is documented anywhere, but I did find out that there might be a bug in the oAuth 2.0 flow when retrieving a new access token using a technically valid refresh token that isn't the "newest" refresh token.
Steps to reproduce:
1. Go through oAuth flow and store the refresh token as refreshToken1.
2. Get new access token from refreshToken1. (this will work perfectly)
3. Go through oAuth flow again with either the same bases or different bases and receive new refreshToken2
4. Try to get a new access token from refreshToken1 (this will fail)
5. Try to get new access token from refreshToken2 (this will succeed)
So if we have a user that goes through the flow twice, giving different bases to different parts of the application, are we supposed to remove all instances of the previous refresh token? I believe most other instances of oAuth 2.0 flows will allow you to continue using the previous refresh tokens so this might be a bug.