When there is no xspupload directory in data (say, if you moved the XSP persistence dirs elsewhere), the code in Api to save fetched remote images fails. Locally, I fixed that by adding some code to determine the set location of the directory:
String xspupload = ExtLibUtil.getStringProperty(ExtLibUtil.getXspContext(), "xsp.persistence.dir.xspupload");
Then I just replaced the occurrences of the string "xspupload" with that variable.