Requests which are made concurrently have a possibility of failing because Oauth2's token refresh is not optimized for concurrent token requests. So we should use sync.mutex so we can lock the requesting process to avoid failures.
Check this commit for implementation details.