-
Hi folks,
We've discovered what looks to be a pretty significant issue with using brainCloud for large packet requests on IOS devices. (edit: removed mention of Android as we have confirmed that it does not occur on Android devices).
The issue appears to be limited to Unity 2019.X.
More info here - https://getbraincloud.com/apidocs/warning-unity-2019-x-ios-issues/
We are constructing a minimal test app so that Unity can easily repro this issue (i.e. trying to take brainCloud out-of-the-test loop) - and then we'll submit the defect to Unity directly.
We'll keep you posted.
Paul.
-
Update - we suspect that this is the same problem:
https://forum.unity.com/threads/ios-post-request-with-raw-data.690514/
-
Just an update. A bug report has been submitted to Unity regarding the UnityWebRequest usage on iOS devices on the Unity 2019 engine.
Bug Information : 1163795 | (Open) iOS - UnityWebRequest Errors - Large Packets - With Examples
Zipped Project : https://www.dropbox.com/s/ccybrg3tirpud0u/iosWebRequestFailures.zip
To Repro:
- Networking Error observed on iOS devices. Run Example from Editor, Tests will commence immediately. UnityWebRequests of varying sizes ~100b, ~1200b, ~8000b, ~21000b and ~48000b are sent multiple times during the tests. The messages are sent to an echo endpoint, in order to confirm proposed send, and processed server data.
- Logs are outputed to the screen, as well as the console for larger error packets.
- All tests pass on Editor.
- Build for iOS.
- Open Xcode, Autosign the app, and build for device.
- Tests fail at inconsistent moments in running tests.
- Close the app, Re-run tests. Observe different failure conditions. Repeat.
Observed errors. No error, or data response returned. (0b response)
Observed errors. Corrupt data sent. (misaligned data)
Observed errors. Corrupt data sent, varying response from server (different sized response, shorter and larger response size)
Observed errors. CRITICAL networking error, where NO MORE network traffic is processed. (need to hard close the app for Network traffic to occur again) -
Good news?
Looks like Unity is aware of the defect (and working on a fix)...
From discussion here - https://forum.unity.com/threads/ios-post-request-with-raw-data.690514/
Paul.
-
So it appears I could have saved a week's worth of work by getting us to downgrade to '18
I've added my voice to the issue in the Unity forum, and we'll keep an eye out for a time-frame. Since we intend to enter early-access next month, might just have to downgrade.Thanks for the update!
Omar.
-
@Omar-Alzayed - yeah, I'd think seriously about downgrading if I were you.
We've only seen one Unity rep acknowledge the issue - with no indication of when (or for what stream) a fix might come.
And this issue is frankly huge. We haven't figured out any way to work around it.
We obviously wouldn't recommend anyone release a Unity app on iOS until this fixed!
-
Hopefully this gets fixed soon. We're using 2019.x for a client app that uses brainCloud as a backend and we're not going to be able to downgrade. I don't think we've seen this issue, but nothing we're doing right now is very large with transferring data to the brainCloud that I know of.
-
Hi @Chris-Brown,
Maybe log into the Unity Forum and add a comment that getting that fixed is important to you.
It can't hurt to ensure that that issue is getting lots of attention in the forum.
Paul.
-
Minor update: Unity's QA team has confirmed with us that they have been able to reproduce the defect, and have sent it to the developers for resolution.
No ETA of course - but good to have the official recognition - hopefully a fix will come soon!
-
@Steve-Jones said in Important: Unity 2019.X on mobile devices:
Bug Information : 1163795 | (Open) iOS - UnityWebRequest Errors - Large Packets - With Examples
Good to hear. Though, this still does not appear on their issue tracker, so can't vote on it. Do you have an issue tracker link I could access?
-
@Omar-Alzayed We don't have an official link either. We have a fogbugz id linked to our dev who reported it - but that seems to be private to him. It doesn't seem like it's their official defect.
-
This post is deleted!
-
I found it in the issue tracker, for those who want to vote on it:
https://issuetracker.unity3d.com/issues/ios-unitywebrequest-errors-large-packets-with-examples
-
Thanks Omar!
Folks please click and add your +1 to this issue!
https://issuetracker.unity3d.com/issues/ios-unitywebrequest-errors-large-packets-with-examples
Paul.
-
This comment was posted on the issue tracker. Could this help?
-
That might work for individual apps.
I believe that's a patch to the Trampoline code that Unity generates.
Unfortunately, it's not so much a patch for brainCloud because those changes would need to be made by each app developer. (And I believe that you would need to re-apply the changes everytime you update Unity).
That said, it might be a short-term fix for someone how needs to release on 2019 now!
(I'll see if I can get a dev to try the fix and test to see if it works for us).
Paul.
-
Confirmed.
After every unity build to Xcode Project,
@synchronized (self)
needs to be wrap the contents ofwriteMoreBody
function.From within the Xcode project file
Classes/Unity/UnityWebRequest.mm
-
Thank you for confirming this and further explaining the solution.
Congratulations on 4.1!Omar.
-
I noticed our UnityWebRequest.mm file is different. Do we still need the @synchronized fix?
-
Good news folks. Unity is now claiming this issue fixed in 2019.3.
We're haven't confirmed it yet - but this sounds hopeful.