When the HTTP Auth action using oauth2 uses a previously stored refresh_token to refresh both the access and refresh tokens, the auth server returns new access and refresh tokens, but tasker is not replacing the old refresh_token with the new refresh_token. Tasker continues to use the older refresh_token, which technically has not expired, but the server side deletes the older refresh_token since the server knows it just issued a new refresh_token.
When tasker subsequently tries to refresh the access token, it uses the older, no longer valid, refresh token and, of course, authentication fails.
The oauth2 spec is long and