we have encountered a probable bug in CampaignFeedService. We have send a request with a CONTAINS_ANY clause according to this documentation:
- The operation apparently worked: The correct four locations are now listed with the campaign.
- But the soap response contained a FunctionError.INVALID_NUMBER_OF_OPERANDS.
SOAP request:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<soapenv:Header>
<ns1:clientCustomerId>
9367243494</ns1:clientCustomerId>
<ns1:developerToken>REDACTED</ns1:developerToken>
<ns1:userAgent>REDACTED (AwApi-Java, AdWords-Axis/4.1.0, Common-Java/4.1.0, Axis/1.4, Java/1.8.0_181, maven, SelectorBuilder)</ns1:userAgent>
<ns1:validateOnly>false</ns1:validateOnly>
<ns1:partialFailure>false</ns1:partialFailure>
</ns1:RequestHeader>
</soapenv:Header>
<soapenv:Body>
<operations>
<operator>SET</operator>
<operand>
<feedId>100969912</feedId>
<matchingFunction>
<functionString>CONTAINS_ANY(FeedAttribute[100969912,14],{"176","047","105","175"})</functionString>
</matchingFunction>
<placeholderTypes>7</placeholderTypes>
</operand>
</operations>
</mutate>
</soapenv:Body>
</soapenv:Envelope>
***********
2019-07-25 16:02:54,908 INFO RemoteCallLoggerDelegate:
***********
SOAP response:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<soap:Header>
<requestId>00058e81e1dbd3c00a3741472207bded</requestId>
<serviceName>CampaignFeedService</serviceName>
<methodName>mutate</methodName>
<operations>1</operations>
<responseTime>88</responseTime>
</ResponseHeader>
</soap:Header>
<soap:Body>
<soap:Fault>
<faultcode>soap:Client</faultcode>
<faultstring>[FunctionError.INVALID_NUMBER_OF_OPERANDS @ operations[0].operand.matchingFunction.rhsOperand]</faultstring>
<detail>
<message>[FunctionError.INVALID_NUMBER_OF_OPERANDS @ operations[0].operand.matchingFunction.rhsOperand]</message>
<ApplicationException.Type>ApiException</ApplicationException.Type>
<fieldPath>operations[0].operand.matchingFunction.rhsOperand</fieldPath>
<fieldPathElements>
<field>operations</field>
<index>0</index>
</fieldPathElements>
<fieldPathElements>
<field>operand</field>
</fieldPathElements>
<fieldPathElements>
<field>matchingFunction</field>
</fieldPathElements>
<fieldPathElements>
<field>rhsOperand</field>
</fieldPathElements>
<trigger/>
<errorString>FunctionError.INVALID_NUMBER_OF_OPERANDS</errorString>
<ApiError.Type>FunctionError</ApiError.Type>
<reason>INVALID_NUMBER_OF_OPERANDS</reason>
</errors>
</ApiExceptionFault>
</detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>