The oauth docs says
Each access_token is valid for 1 hour and each refresh token is valid for 14 days. To use the refresh_token to get a new access_token, make a POST request to https://api.box.com/oauth2/token
In this response, you’ll receive both a new access_token and refresh_token. The refresh_token you used to make this request is no longer valid.
Questions:
1) If by chance I am not able to store this new refresh_token then the old refresh_token is invalidated?
2) Can’t there be refresh token which is valid always and we generate only access_token?
Yes, when a new refresh_token is created, the previous one is invalidated.
Part of the OAuth 2 spec includes invalidating old refresh_tokens in exchange for a new one. It’s not the most gripping read, but you can see all of that here: https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-31