After upgrading to Banzai we have encountered a very strange and hard to diagnose problem with File uploads from mobile apps. We have multiple mobile apps where fields are rendered as File Upload fields of type Lookup(File). So we have a Lookup to the File object and the upload creates a File record with an attached file. This mostly works. We are doing hundreds of uploads per day and most of them do work as they did before Banzai. 

But a couple of uploads each day fail giving the error message “Required Field ParentId missing”. Then the file record gets created but is named with the RecordId of the same record and does not have a attachment. However there seems to be no systematic occurence of the problem. The same user can later upload within the same app and other users can upload. We can not force the problem to occur on a specific record or for a certain user or web-browser.

I assume that the missing ParentID is on the Attachement Object so the failure supposedly starts because the Attachment record is not saved properly and then that means that the file record referencing the Attachment can’t be loaded either. Maybe this can be some kind of performance or timing issue. If the creation of the Attachment record is done Asynchronously maybe that is not finished when the attempt of creating the File record is done.  

However I am stuck trying to diagnose the error so I would need suggestions on how to proceed. Does anybode else have similar problems?

Hi Peter,

I’m trying to reproduce this issue, but so far have not been able to. I’ll keep trying, but if you come across any suggestions on how to reproduce it more consistently, let me know.

Hi Ben,
I found a situation where I could reproduce the problem for one user and turned on the Apex debug log when he tried to upload. To my surprise I found nothing was logged for the user and I could not see the console because he only got the problem when using iPad.

Then I build a test page and managed to get the same problem on a computer and looked in the console and found the message:

Visualforce Remoting Exception: Unable to connect to the server (transaction aborted: timeout). $VFRM.Util.error@VFRemote.js:117

This did work 100% before Banzai and now we are getting this type of error every day. We do several 100 file uploads per day so it is very annoying for users. Do you know what has changed in Banzai that can cause this?

I’ve had reports from a user that has done some testing and he claims that when he opens the app on an iPad (chrome browser), lets it sit for more than half an hour and tries to upload a file he gets the timeout error and the created Skuid File is named with the 18 character ID. Attempting to upload a new file to that field after that results in the parent Id missing errror. Removing the lookup from the field, and restarting the app will make it possible to upload again. I haven’t been able to reproduce this but will see if I can.

The page i was able to get the problem from when I captured the VF remoting error did work when I tried it again. It did not work at my hotel in SF with poor internet. So it seems there is a combination of internet performance and client where iPads seems more likely to encounter the problem, but as they often are using mobile broadband it might be just a bandwith issue. This is very hard to troubleshoot without knowing which changes have been made in banzai to the file upload functionality. Can you find anything that explains this or can you advise if there any timeout values that can be increased. We now have hundreds of occurences of this problem seemingly randomly spread between users, and it is becoming a major cause of irritation for users.