401 Unauthorized / Missing User OAUTH Token

That might be the problem

Sounds like you are over refreshing and introducing a weirdness.
Or when you do refresh your program doesn’t use the new generated token.
And it’s the original token dying that is when your authentication is failing.

It’s part of the oAuth specification, so not explicity documented.

And why the new/current refresh token is returned when you refresh.

The refresh token may change at refresh but it doesn’t have to.