Skip to content

Sometimes getting http 401 on requests #2356

@alexgran

Description

@alexgran

We are using current v2.16.2. This works fine most of the time.
But sometimes we get a http 401 back like this:

Google\Http\REST::decodeHttpResponse()
#1 [internal function]: Google\Http\REST::doExecute()
#2 /var/www/html/magento2/vendor/google/apiclient/src/Task/Runner.php(187): call_user_func_array()
#3 /var/www/html/magento2/vendor/google/apiclient/src/Http/REST.php(66): Google\Task\Runner->run()
#4 /var/www/html/magento2/vendor/google/apiclient/src/Client.php(920): Google\Http\REST::execute()
#5 /var/www/html/magento2/vendor/google/apiclient/src/Service/Resource.php(238): Google\Client->execute()
#6 /var/www/html/magento2/vendor/google/apiclient-services/src/Sheets/Resource/SpreadsheetsValues.php(271): Google\Service\Resource->call()
#7 /var/www/html/magento2/vendor/bobbie/module-tender/Helper/GoogleApi.php(189): Google\Service\Sheets\Resource\SpreadsheetsValues->update()
#8 /var/www/html/magento2/vendor/bobbie/module-tender/Model/GoogleSheet.php(91): Bobbie\Tender\Helper\GoogleApi->setSpreadSheetValue()
#9 /var/www/html/magento2/vendor/bobbie/module-tender/Model/TenderSheet.php(488): Bobbie\Tender\Model\GoogleSheet->setValue()
[2022-11-29T14:44:41.634244+00:00] main.ERROR: {
  "error": {
    "code": 401,
    "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
    "errors": [
      {
        "message": "Invalid Credentials",
        "domain": "global",
        "reason": "authError",
        "location": "Authorization",
        "locationType": "header"
      }
    ],
    "status": "UNAUTHENTICATED"
  }
}
 [] []

Just milliseconds before I had successfull requests, and we are checking token lifetime frequently using:

 if ($this->getClient()->isAccessTokenExpired()) {
            // Refresh the token if possible, else fetch a new one.
            if ($this->client->getRefreshToken()) {
                $this->client->fetchAccessTokenWithRefreshToken($this->client->getRefreshToken());
                $this->persistToken($this->client);

Metadata

Metadata

Assignees

Labels

priority: p2Moderately-important priority. Fix may not be included in next release.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions