I am getting <Ack>Failure<Ack> and an error returned for my AddItem call, but the VerifyAddItem call for the exact same item did not return an error.
There are a very small number of cases where the VerifyAddItem call will return <Ack>Success<Ack> but the exact same request in an AddItem call will return <Ack>Failure<Ack>.
In these cases, the AddItem call will return Errors, and the VerifyAddItem call will not return Errors.
However, in almost all of these cases, the VerifyAddItem call will return the same Message node that AddItem returns.
The Message node, as documented for both VerifyAddItem and AddItem is an HTML formatted message which provides clarification on the error that was generated.
The error generated for the AddItem call in these cases is usually the following error:
<ShortMessage>The item cannot be listed or modified.</ShortMessage>
<LongMessage>The item cannot be listed or modified. The title and/or description may contain improper words, or the listing or seller may be breaching eBay policy.</LongMessage>
The difference between the VerifyAddItem call and the AddItem call in regards to this issue is that there are cases where this error is generated on AddItem, but not on VerifyAddItem.
However, the VerifyAddItem call will still return the Message node that further explains the error.
Here is an example of a VerifyAddItem call response returning a Success with a Message node:
<?xml version="1.0" encoding="UTF-8" ?>
<Message><div> <table cellpadding="0" cellspacing="0" border="0" width="100%"> ... </Message>
The full HTML content for an example Message node can be found in the Message.html attachment.
It is not possible in all cases to return an Error in VerifyAddItem even when the Message node is returned.
The best practice recommendation is to do the following:
In the VerifyAddItem call, please always check for the existence of a Message node, even if <Ack>Success</Ack> is returned with no Errors.
If a Message node does exist, please show this Message to the seller, and let the seller know that for this listing attempt, there was a message from eBay which may cause the actual listing attempt to fail.
Please note that this recommendation is a "defensive programming" best effort, and effectively gives the seller the same notice regardless of the underlying issue.
This will provide the same user experience and information as if the VerifyAddItem call had returned with a Failure ... which in the end is what any selling application attempts to achieve.