Migration on API 201802: ACTION_NOT_PERMITTED errors

54 views
Skip to first unread message

Emmanuel Martin

unread,
Apr 30, 2018, 5:32:27 AM4/30/18
to AdWords API and Google Ads API Forum
Hi,

I recently migrated our developements to API 201802, and we are now getting errors on mutate calls.
We are doing Business Feed update using the API

For instance, we get this error when calling FeedServiceInterface.mutate(...)
2018-04-30 10:18:06,160 - [ERROR] - from application in play-akka.actor.default-dispatcher-25
ApiException{applicationExceptionType=ApiException, errors=[OperationAccessDenied{apiErrorType=OperationAccessDenied, errorString=OperationAccessDenied.SET_OPERATION_NOT_PERMITTED, fieldPath=operations[0], fieldPathElements=[FieldPathElement{field=operations, index=0}], reason=SET_OPERATION_NOT_PERMITTED, trigger=}]}
com.google.api.ads.adwords.axis.v201802.cm.ApiException: null
        at sun.reflect.GeneratedConstructorAccessor43.newInstance(Unknown Source) ~[na:na]
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_161]
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_161]
        at java.lang.Class.newInstance(Class.java:442) ~[na:1.8.0_161]
        at org.apache.axis.encoding.ser.BeanDeserializer.<init>(BeanDeserializer.java:104) ~[org.apache.axis.axis-1.4.jar:na]
        at org.apache.axis.encoding.ser.BeanDeserializer.<init>(BeanDeserializer.java:90) ~[org.apache.axis.axis-1.4.jar:na]
        at com.google.api.ads.adwords.axis.v201802.cm.ApiException.getDeserializer(ApiException.java:165) ~[com.google.api-ads.adwords-axis-3.13.0.jar:na]
        at sun.reflect.GeneratedMethodAccessor80.invoke(Unknown Source) ~[na:na]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_161]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_161]
        at org.apache.axis.encoding.ser.BaseDeserializerFactory.getSpecialized(BaseDeserializerFactory.java:154) ~[org.apache.axis.axis-1.4.jar:na]
        at org.apache.axis.encoding.ser.BaseDeserializerFactory.getDeserializerAs(BaseDeserializerFactory.java:84) ~[org.apache.axis.axis-1.4.jar:na]
        at org.apache.axis.encoding.DeserializationContext.getDeserializer(DeserializationContext.java:464) ~[org.apache.axis.axis-1.4.jar:na]
        at org.apache.axis.encoding.DeserializationContext.getDeserializerForType(DeserializationContext.java:547) ~[org.apache.axis.axis-1.4.jar:na]
        at org.apache.axis.message.SOAPFaultDetailsBuilder.onStartChild(SOAPFaultDetailsBuilder.java:157) ~[org.apache.axis.axis-1.4.jar:na]
        at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035) ~[org.apache.axis.axis-1.4.jar:na]
        at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source) ~[xerces.xercesImpl-2.11.0.jar:na]
        at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source) ~[xerces.xercesImpl-2.11.0.jar:na]
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) ~[xerces.xercesImpl-2.11.0.jar:na]
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) ~[xerces.xercesImpl-2.11.0.jar:na]
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) ~[xerces.xercesImpl-2.11.0.jar:na]
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) ~[xerces.xercesImpl-2.11.0.jar:na]
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) ~[xerces.xercesImpl-2.11.0.jar:na]
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) ~[xerces.xercesImpl-2.11.0.jar:na]
        at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) ~[xerces.xercesImpl-2.11.0.jar:na]
        at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source) ~[xerces.xercesImpl-2.11.0.jar:na]
        at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227) ~[org.apache.axis.axis-1.4.jar:na]
        at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696) ~[org.apache.axis.axis-1.4.jar:na]
        at org.apache.axis.Message.getSOAPEnvelope(Message.java:435) ~[org.apache.axis.axis-1.4.jar:na]
        at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62) ~[org.apache.axis.axis-1.4.jar:na]
        at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206) ~[org.apache.axis.axis-1.4.jar:na]
        at org.apache.axis.client.Call.invokeEngine(Call.java:2784) ~[org.apache.axis.axis-1.4.jar:na]
        at org.apache.axis.client.Call.invoke(Call.java:2767) ~[org.apache.axis.axis-1.4.jar:na]
        at org.apache.axis.client.Call.invoke(Call.java:2443) ~[org.apache.axis.axis-1.4.jar:na]
        at org.apache.axis.client.Call.invoke(Call.java:2366) ~[org.apache.axis.axis-1.4.jar:na]
        at org.apache.axis.client.Call.invoke(Call.java:1812) ~[org.apache.axis.axis-1.4.jar:na]
        at com.google.api.ads.adwords.axis.v201802.cm.FeedServiceSoapBindingStub.mutate(FeedServiceSoapBindingStub.java:865) ~[com.google.api-ads.adwords-axis-3.13.0.jar:na]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_161]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_161]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_161]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_161]
        at com.google.api.ads.common.lib.soap.SoapClientHandler.invoke(SoapClientHandler.java:100) ~[com.google.api-ads.ads-lib-3.13.0.jar:na]
        at com.google.api.ads.common.lib.soap.axis.AxisHandler.invokeSoapCall(AxisHandler.java:234) ~[com.google.api-ads.ads-lib-axis-3.13.0.jar:na]
        at com.google.api.ads.common.lib.soap.SoapServiceClient.callSoapClient(SoapServiceClient.java:63) ~[com.google.api-ads.ads-lib-3.13.0.jar:na]
        at com.google.api.ads.common.lib.soap.SoapServiceClient.invoke(SoapServiceClient.java:93) ~[com.google.api-ads.ads-lib-3.13.0.jar:na]
        at com.sun.proxy.$Proxy20.mutate(Unknown Source) ~[na:na]
        at services.AdwordsService$.createFeedFormat(AdwordsService.scala:178) ~[wasabe2.wasabe2-1.0-SNAPSHOT.jar:1.0-SNAPSHOT]
        at services.AdwordsService$.updateJrpPrices(AdwordsService.scala:42) ~[wasabe2.wasabe2-1.0-SNAPSHOT.jar:1.0-SNAPSHOT]
        at controllers.index.Application$$anonfun$adwords$1.apply(Application.scala:16) [wasabe2.wasabe2-1.0-SNAPSHOT.jar:1.0-SNAPSHOT]
        at controllers.index.Application$$anonfun$adwords$1.apply(Application.scala:15) [wasabe2.wasabe2-1.0-SNAPSHOT.jar:1.0-SNAPSHOT]
        at play.api.mvc.ActionBuilder$$anonfun$apply$16.apply(Action.scala:433) [com.typesafe.play.play_2.11-2.3.10.jar:2.3.10]
        at play.api.mvc.ActionBuilder$$anonfun$apply$16.apply(Action.scala:432) [com.typesafe.play.play_2.11-2.3.10.jar:2.3.10]
        at play.api.mvc.Action$.invokeBlock(Action.scala:556) [com.typesafe.play.play_2.11-2.3.10.jar:2.3.10]
        at play.api.mvc.Action$.invokeBlock(Action.scala:555) [com.typesafe.play.play_2.11-2.3.10.jar:2.3.10]
        at play.api.mvc.ActionBuilder$$anon$1.apply(Action.scala:518) [com.typesafe.play.play_2.11-2.3.10.jar:2.3.10]
        at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4$$anonfun$apply$5.apply(Action.scala:130) [com.typesafe.play.play_2.11-2.3.10.jar:2.3.10]
        at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4$$anonfun$apply$5.apply(Action.scala:130) [com.typesafe.play.play_2.11-2.3.10.jar:2.3.10]
        at play.utils.Threads$.withContextClassLoader(Threads.scala:21) [com.typesafe.play.play_2.11-2.3.10.jar:2.3.10]
        at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4.apply(Action.scala:129) [com.typesafe.play.play_2.11-2.3.10.jar:2.3.10]
        at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4.apply(Action.scala:128) [com.typesafe.play.play_2.11-2.3.10.jar:2.3.10]
        at scala.Option.map(Option.scala:146) [org.scala-lang.scala-library-2.11.8.jar:na]
        at play.api.mvc.Action$$anonfun$apply$1.apply(Action.scala:128) [com.typesafe.play.play_2.11-2.3.10.jar:2.3.10]
        at play.api.mvc.Action$$anonfun$apply$1.apply(Action.scala:121) [com.typesafe.play.play_2.11-2.3.10.jar:2.3.10]
        at play.api.libs.iteratee.DoneIteratee$$anonfun$mapM$2.apply(Iteratee.scala:705) [com.typesafe.play.play-iteratees_2.11-2.3.10.jar:2.3.10]
        at play.api.libs.iteratee.DoneIteratee$$anonfun$mapM$2.apply(Iteratee.scala:705) [com.typesafe.play.play-iteratees_2.11-2.3.10.jar:2.3.10]
        at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24) [org.scala-lang.scala-library-2.11.8.jar:na]
        at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24) [org.scala-lang.scala-library-2.11.8.jar:na]
        at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:39) [com.typesafe.akka.akka-actor_2.11-2.4.17.jar:na]
        at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:415) [com.typesafe.akka.akka-actor_2.11-2.4.17.jar:na]
        at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) [org.scala-lang.scala-library-2.11.8.jar:na]
        at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) [org.scala-lang.scala-library-2.11.8.jar:na]
        at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) [org.scala-lang.scala-library-2.11.8.jar:na]
        at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) [org.scala-lang.scala-library-2.11.8.jar:na]

I suspect that our developerToken is not valid any more.
How can I check if it is still valid ?

Thank you,
Best regards,
Emmanuel


Milind Sankeshware (AdWords API Team)

unread,
Apr 30, 2018, 12:07:51 PM4/30/18
to AdWords API and Google Ads API Forum
Hi,

Could you please enabling logging and share the complete SOAP request and response log along with client customer id so that I can troubleshoot the issue? You could refer this guide to enable the logging. You could choose 'Reply privately to author' option while responding. 

Thanks,
Milind, AdWords API Team.
Reply all
Reply to author
Forward
0 new messages