Random 501 errors when refreshing token

Author: scleriotCreated Jun 10, 2022Updated Jul 18, 2022
Labelstype: question

Starting on Wednesday June 8th, we are getting randomly 501 errors when trying to refresh tokens:

json
{"error": {"code": 501, "status": "UNIMPLEMENTED", "message": "Operation is not implemented, or supported, or enabled."}}

Here is the code that generates this error:

php
$client = new \Google_Client();
$client->setApplicationName(config('google.APP_NAME'));
$client->setClientId(config('google.CLIENT_ID'));
$client->setClientSecret(config('google.CLIENT_SECRET'));
$client->setAccessType('offline');

$client->setAccessToken(TOKEN);

if ($client->isAccessTokenExpired()) {
      \Log::debug("access_token expired");
      $refresh_token = $client->getRefreshToken();
      $new_access = $client->fetchAccessTokenWithRefreshToken($refresh_token);

     // $new_access sometimes returns this error {"error": {"code": 501, "status": "UNIMPLEMENTED", "message": "Operation is not implemented, or supported, or enabled."}}
}

When we manually connect again the Google account (which generates and stores a new refresh token), the accounts refreshes correctly, and then after a few refresh fails again with a 501 error

Source: googleapis/google-api-php-client