Hi Paul,
AppStudio attempts to do your entire file upload in a single REST API call.
However, due to the speed of your internet connection, combined with the size of the file, that request will take a significant measurable time. For instance, let's assume you're on a 200kbps connection. The upload would take more than an hour. The ArcGIS Online REST API could terminate the request due to a number of reasons: it didn't receive your file attachment in the time allotted, or it did receive the file, but, it didn't have sufficient time to give you a response.
I would guess that you're triggering the former.
AppStudio has no choice but reflect on the error response we got from ArcGIS Online. If ArcGIS Online believes that it didn't receive your file, then, AppStudio has no choice to echo that fact.
There are a number of solutions to this problem:
1. if you cannot repair your internet speed (i.e. your app must function in an environment that has poor internet connectivity), then, you can consider using a middleman proxy server that could cache your request. As far as ArcGIS Online is concerned, it will see the request originating from the proxy server, and, we would hope that proxy server is hosted on a fast internet.
2. we can consider redesign the upload to occur in a multipart upload request, however, each part would be subject to the same REST API thresholds, i.e. they could terminate if any part could not be delivered in a timely manner - some real world scenarios would really help us understand how to tune AppStudio for such scenarios.
You just have to ensure that your proxy server has sufficiently large timeouts to receive your file so that it can relay it.
Hope this makes sense.
Stephen