While playing around with the SOAP API, it turns out the error messages are not always very helpful, especially when using the multiCall() method.
Using call() I would get good error messages (eg “The value of attribute “SKU” must be unique."), but mutiCall() would only return “Internal Error. Please see log for details.”.
The solution has been to __modify a core file__ for it to return the correct error message.
Note: I’ve only tested this with the SOAP protocol though it should work for XMLRPC too.
* Magento version: 126.96.36.199
* File to edit : /app/code/core/Mage/Api/Model/Server/Handler/Abstract.php
* Line: 418
Replace this :
$result = $this->_faultAsArray('internal');
$result = $this->_faultAsArray('internal', null, $e->getMessage());
Now all your calls to multiCall() return the same error messages as call() !
P.S. The following posts have helped me to get the API working correctly :
Fix n°1 : http://www.magentocommerce.com/boards/viewreply/246368/
Fix n°2 (php 5.3 only ?) : http://www.magentocommerce.com/boards/viewreply/185717/