Generate long-lived access token from short-lived one?
there is no reason why generating more access tokens from refresh tokens  would cause an error.  existing non-expired access tokens are not invalidated when a new one is produced from the refresh token.
check your code for errors there.
also there is no way to generate a long lived access token. what you ask is how oauth1/clientlogin used to work (they expired after 2 weeks instead of 1 hour). in oauth2 there is no such thing as a long lived access token.
Our app uses the usual short-lived access + refresh tokens to do a bunch of background services for users. This means that every now and then the services need to refresh the tokens.
We've run into an issue where 2 services try to refresh a token at the same time, thus resulting in an invalid token.
Is there a better way to generate a usable access token that doesn't require a refresh every hour?