Is it possible to submit a valid request and still have an error? Yes. If you were to submit a request and no items in Amazon satisfied the request, you would receive an error. The following request is an example of this problem.
http://webservices.amazon.com/onca/xml? Service=AWSECommerceService& AWSAccessKeyId=
[AWS Access Key ID]& AssociateTag=
[Associate ID]& Operation=
ItemSearch& Condition=Refurbished& ResponseGroup=Images& SearchIndex=Automotive& Title=Harry%20Potter &Timestamp=[YYYY-MM-DDThh:mm:ssZ] &Signature=[Request Signature]
The following response snippet shows the error.
<IsValid>True</IsValid> ... <Errors> <Error> <Code>AWS.ECommerceService.NoExactMatches</Code> <Message>We did not find any matches for your request. </Message> </Error> </Errors>
Looking for a refurbished edition of a Harry Potter book in the Automotive section doesn't make much sense. So, it's not surprising that there were no items that satisfied that request. Similar problems can be much more subtle, however. For example, the default value of Condition is "New". In part, this is because Amazon only sells new items. If you submitted a request without specifying a value for Condition and received no results, you might assume that there are no items that satisfy the request. By setting Condition to "All", you might find that items do satisfy the request.
A similar error message is displayed when, for example, you use
to find an item that does not exist in the Amazon catalog.
<Errors> <Error> <Code>AWS.InvalidParameterValue</Code> <Message>B0111NOSUCHITEM is not a valid value for ItemId. Please change this value and retry your request. </Message> </Error> </Errors>
ItemId was set equal to "B0111NoSuchItem" in the request. The error message shows that Product Advertising API converts ItemId values to all caps.