I'm getting this error when running this code:
$googleAdsClient->getGoogleAdsServiceClient()->search($customerId, $query, $page_size);
ERROR message:
proto descriptor was previously loaded (included in multiple metadata bundles?): google/ads/googleads/v5/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto
$googleAdsClient is an instance of \Google\Ads\GoogleAds\Lib\V5\GoogleAdsClient
.
The getGoogleAdsServiceClient
method comes from the ServiceClientFactoryTrait
trait /Google/Ads/GoogleAds/Lib/V5/ServiceClientFactoryTrait.php
I'm running:
php 7.4.1
grpc module version => 1.34.0
protobuf version => 3.14.0
Additional libs installed via composer:
google/grpc-gcp 0.1.5 gRPC GCP library for channel management
google/protobuf v3.13.0.1 proto library for PHP
googleads/google-ads-php v5.0.0 Google Ads API client for PHP
grpc/grpc 1.30.0 gRPC library for PHP
I don't know enough about descriptors or the protobuf library to understand this error. It just started happening a couple days ago and I don't think we made any changes that would effect this. Any help/guidance would be much appreciated.
EDIT: forgot to link to SDK https://github.com/googleads/google-ads-php
EDIT: updated the following libs:
google/apiclient v2.9.1 Client library for Google APIs
google/apiclient-services v0.161.0 Client library for Google APIs
google/auth v1.15.0 Google Auth Library for PHP
google/common-protos 1.3 Google API Common Protos for PHP
google/gax 1.7.0 Google API Core for PHP
google/grpc-gcp 0.1.5 gRPC GCP library for channel management
google/protobuf v3.15.3 proto library for PHP
googleads/google-ads-php v7.0.0 Google Ads API client for PHP
grpc/grpc 1.35.0 gRPC library for PHP
google/protobuf v3.15.3 proto library for PHP
I found the issue for me. I had the C implementation installed via pecl install protobuf
. Sense I'm running my app in a docker container, every time I built a new image it would install the latest release of protobuf. Sense I started seeing this error around the 22nd of Feb I looked at the protobuf builds and I see a build on the 20th of Feb for version 3.15.0 which coincides with a new build I ran on the 22nd.
To fix this I downgraded to version 3.14.0 via the pecl install protobuf-3.14.0
command in my Dockerfile. This isn't a permanent fix as at some point I want to upgrade the package but I will have to wait for a version that deals with this issue.
This problem was addressed in https://github.com/googleads/google-ads-php/issues/540 and fixed in protobuf version 3.18.0 ( https://github.com/protocolbuffers/protobuf/releases/tag/v3.18.0 )
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With