[Bug Report] Scan Upload Fails on iPhone XR: 100% failure rate

TinderbiscuitTinderbiscuit ✭✭✭
edited May 2020 in App Feedback (Archive)

Description: I am completely unable to submit scans marked "upload later". Uploading on 4G isn't an option due to limited bandwidth.

Ingress Version: 2-47.2-52a7183c

Phone: iPhone XR

Model: MRY42B/A

OS: iOS 13.3.1

Carrier: O2 (4G)

WiFi: 7.9Mbps

Free storage space: 24Gb

Reproduction Frequency: 100%

Steps to Reproduction:

1) Open Ingress: visit and scan a number of portals. Choose “upload later” on each upload.

2) Return home ensure WiFi enabled on phone.

3) Connect to home WiFi network.

4) Select circular button from bottom of client to open game menu.

5) Select “Settings” from game menu.

6) Scroll to “Portal Scanning” and select “Start Upload”. Note that progress animation plays.

7) Wait for upload.

8) Observe that app either crashes or displays “Upload Failed” message. Equal chance of either happening, but one of those two outcomes is guaranteed.

Note that scanner medal shows no upload progress and it still at 0 uploads. This indicates that no uploads have succeeded. Note that the scanner camera screen shows multiple scans (25) have already been taken.


Comments

  • cyblockercyblocker ✭✭✭

    +1 the similar issue, but on my phone, the entire iOS crashed because of the upload and there will be a system restart.

    Steps to reproduce:

    1. Launch Ingress
    2. Go to Settings, find Portal Scanning
    3. Click Start side to Upload Portal Scans

    Observation: the entire system crashes

    Expected result: the upload should get started without crash


    Ingress Version: 2.47.2-52a7183c

    iOS: 13.4.5

    Device: iPhone 11

    Other probably related environment information: storage remaining 10.19 GB, WiFi connected.

  • cyblockercyblocker ✭✭✭

    I exported the crash log, attached

    As no attachment other than image files are allowed, please find them in the following Drive folder: https://drive.google.com/drive/folders/1rLHgE2pTxmw26rPHQwDXcJhbABSX9A2e?usp=sharing

  • Hey Cyblocker :) Is that an OS crash log or an Ingress crash log? Where is it stored? I'll upload as well if you can provide me with steps for accessing.

  • cyblockercyblocker ✭✭✭

    It's the OS crash log, as on my phone the portal scan upload caused the OS crash. There's no app crash log related to it.

    I accessed the log from a Mac OS device, Xcode - devices and simulators - Device logs - crash logs

  • Thanks. I'm familiar with Xcode but don't have a Mac unfortunately! :)

  • @Tinderbiscuit @cyblocker can you try updating Ingress to 2.48.2 to see if you're still seeing this crash when using the Upload Later option?

    If you're still seeing this issue, are there any other details about your phone configuration you can share? For example, do you have Low Power Mode enabled, or Background App Refresh disabled?

  • TinderbiscuitTinderbiscuit ✭✭✭
    edited June 2020

    Thanks for the feedback Brian. It looks like 2.48.2 only went live on the Apple store yesterday so I'm grabbing now. I'll let you know.

    I don't have low power mode enabled.

    Background app refresh is enabled for all apps including Ingress. I left Ingress running in the foreground while attempting to upload.

    EDIT

    Run 1 (2.48.2):

    The app crashed after about 15 minutes.

    I booted Ingress after updating to 2.48.2 from the Apple app store. It was the only app running. I left it for a few minutes. I then had to make a call on Microsoft Teams for work. That lasted 6 minutes. I closed the Teams app. I returned to Ingress. Ingress was still running and the triangular "upload" widget was still animating. At around 15 minutes after the upload started Ingress had closed itself (which means it crashed).

    Run 2 (2.48.2):

    The upload failed after about 15 minutes. The "upload failed" message was displayed.

    I booted Ingress and started the scan upload. After about 7/8 minutes my phone popped up the "Low Battery" dialog indicating 20% battery remaining. I closed this (without going into power save mode) and connected the phone to a charger. After 15 minutes total duration, the "upload failed" message was displayed.

    Run 3 (2.48.2):

    The upload failed after about 15 minutes. The "upload failed" message was displayed.

    I restarted my phone and ensured that Ingress was the only app in use. I opened Ingress, started the upload an waited. After 15 minutes the "upload message" was displayed.


    General Rambles

    I'm not sure what more information I can provide you with that would be relevant. Is there some kind of telemetry you could enable on the server if you check for my username? We could agree a time for me to begin my upload.

    The "upload failed" error message could mean the server receiving the data has tried to validate it and it's failed, so the client is just reporting that error. It could mean it timed out. Unfortunately it could mean any number of things. Perhaps consider reporting more meaningful errors.

    I'd consider the flow for the upload. When is an error reported? Does the "upload failed" message show and then abort uploading all subsequent scan uploads? If that's the case can you implement a more robust system that continues to upload despite one bad blob of data? Could you report something like "8 of 10 uploads completed successfully" at the end instead?

    The client could be generating good or bad data. If the client uploads good data then the issue is the server incorrectly reporting bad data. If the client generates bad data then the server validation is working fine and the issue is on the client. You could double check the validation on the server and annotate it. I guess you could verify whether my client is sending bad data by temporarily adding some debug code checking for my username. That would at least narrow down the problem.

    The crash is most likely just a null/bad pointer dereference. It may not only happen on this platform but could just be more likely so it's not guaranteed to be in any platform specific code. Ensure that everywhere you use them it's doing something safe. Are there any raw pointers or reuse pointers that could end up pointing to bad data? On the client I imagine you're working with blobs of data containing multiple images. Check everywhere you use them. Is there anywhere that it could go wrong? Does the size of the image data actually match the expected size given format and dimensions? Can you do validation on the client to ensure that the data is valid before the upload? (This could be platform specific as different phones will have different image storage specs).

    The only other obvious thing I could think would be an out of memory issue. What if it tries to load too many blobs into memory in at once? Can you confirm that the uploads are completely sequential? It's probably more likely that the save data format info is corrupt or misinterpreted so that the stored/calculated image dimensions become something ridiculously huge so it tries to allocate more memory for the upload blob than the phone will allow?

    Sorry. Rambles of a backseat coder who has never seen your codebase. Most of this stuff should be basic knowledge to any coder...

    Post edited by Tinderbiscuit on
  • @Tinderbiscuit we've been unable to repro this crash on iPhone XR, and our team reviewed the logs you shared. We believe you may have a corrupted Portal Scan in your queue that's causing the app to crash, but the way we can test that theory is if you clear your app data, which will clear all of your Portal Scans. If you're willing to try that option, there are two ways to do this:

    1. In Ingress, tap Main Menu, Settings, then in the Portal Scanning section, tap Clear All. Try doing one Portal Scan to see if the upload succeeds.
    2. In iOS Settings, tap General, iPhone Storage, Ingress Prime, then tap Delete App. This will uninstall Ingress and also delete all related data from your device so you can do a clean reinstall. Try doing one Portal Scan to see if the upload succeeds.

    We're exploring a new Upload Later flow that could be more granular than uploading all or clearing all Portal Scans, but this will take some time.

  • cyblockercyblocker ✭✭✭

    @NianticBrian Thank you for help! I've updated my app and tried the uploading again, it worked without any problem on my iPhone 11 device.

  • TinderbiscuitTinderbiscuit ✭✭✭
    edited June 2020

    @cyblocker Glad you got yours working.

    @NianticBrian I'll give that a try. I was hoping not to lose the scans I'd already done but I can always take more. Thanks again for the feedback.

  • TinderbiscuitTinderbiscuit ✭✭✭
    edited June 2020

    Hi @NianticBrian

    It appears that I can now upload portal scans.

    Unfortunately I believe I've now encountered a bug whereby Ingress immediately uploads scans even though I select "Upload Later". I only discovered this after I'd scanned 9 portals and realised that the game was stuttering. (The game and camera during scans started dropping frames). I thought I'd take a look in my settings and as I scrolled down I spotted that the triangular upload widget was spinning. I looked at the scout badge and it showed 9 uploads.

    I also found that there was a significant delay when attempting to glyph hack - unsure whether this was server related or upload related.

    I absolutely guarantee that I never went into the menu and selected "Start Upload".

    My repro steps are:

    • Open Ingress
    • Disable Wifi (play with 4G)
    • Play as normal (hack, smash, field)
    • Scan 2 portals
    • Play as normal (hack, smash, field)
    • Return home and connect to wifi. (Ingress left open whilst at home and connected to Wifi).
    • Turn off wifi (play with 4G)
    • Head back outside to play: only glyph hack portals
    • Scan 7 more portals
    • Observe a drop in frame rate during gameplay and scanning
    • Open settings
    • Note that upload has automatically begun.

    At no point did I ask the game to upload the portals. I wonder if when I returned home with the game open and connect to Wifi it began uploading automatically? If that's the case, maybe some flag gets stuck "on" so when I headed back outside on only 4G it continued to automatically upload.

    I reckon this will have eaten up around 1.3-1.4Gb of my monthly 20Gb budget.

  • @Tinderbiscuit we don't automatically upload when your phone connects to Wi-Fi, but we'll investigate by trying to reproduce from your previous steps of using "Upload Later" with the corrupted Portal Scan. If the 9 Portal Scans were uploaded today and weren't from your previous "Upload Later" attempt before hitting the corrupted file, then that might be why the Settings menu is trying to upload Portal Scans in your current queue.

  • TinderbiscuitTinderbiscuit ✭✭✭
    edited June 2020

    Hi @NianticBrian, thanks for clarifying.

    Sorry to bother you again but in addition to my last report this also happened about 30 minutes later:

    • Open Ingress
    • Connect to Wifi
    • Open Settings
    • Select "Start Upload"
    • Wait while upload executes.
    • "Upload Failed" dialogue is shown.
    • Dismissed dialogue message.
    • 2-3 seconds later back out of Settings screen using "cross" widget at bottom of screen.
    • App crashes: user is returned to iPhone home screen.

    It appears that I'm now on 10 scans so one more must have completed successfully.

    All scans were taken with 2.48.2 this time. All uploads were attempted with 2.48.2.

    EDIT

    I've run the upload several times now and it either shows the "Upload Failed" message or the app crashes entirely. Repro steps are the same as my very first post.

    Post edited by Tinderbiscuit on
  • I cleared my cache before going out to play last night. I only took about 5 scans. This morning I tried to upload them on WiFi and it failed to upload any of them again. I’m afraid it’s still as broken as it was in the previous version.

  • Hi @NianticBrian !

    Has there been any update on this issue? From 80 submissions only 18 have been successful. Of those 9 were erroneously uploaded on my 4G instead of waiting for WIFi. I don’t think there’s any way I’ll get to 6000 subs for onyx at this rate. Can we expect a fix in a new version of the client?


  • TinderbiscuitTinderbiscuit ✭✭✭
    edited July 2020

    I originally posted on 30th May. It's now 18th July and this pretty much sums up how I feel:

    2 new badges, neither of which I can contribute to because uploads consistently crash. I've updated to 2.51.1-cb032019.

    I'm not the only person experiencing this. A number of players in my local area are experiencing the same issue. Can we have an update?


  • GrogyanGrogyan ✭✭✭✭✭

    @NianticBrian reckons this needs looking into, as it is happening on Android as well.

    App: 2.51.1

    Mobile: Galaxy S9+

    OS: Android 10


    Restarting the app doesn't work.

    Still have a lot of scans waiting for upload, but met with "upload failed" dialog

  • I'm on android Samsung S9+ and I am lucky if I get a 30% success rate when trying to upload portal scans.

    It has never crashed my OS but or game but the majority of the time the upload fails and I have to try several times to get it to work.

  • Attempted to do two scans yesterday. Each time I got 'scan failed' and ingress crashed. Have previously managed to scan 2 with same hardware (OnePlus 6)

    Didn't get a screenshot unfortunately

  • Similar issue of not being able to upload scans later, except mine won’t crash, but the loading animation plays indefinitely after clicking upload. It’s probably a web speed issue, but normal ingress play, portal photos etc. load fine. I’m on an iPhone 7+. I also only have a three or four scans to be uploaded later.

  • I've had one crash, after initiating the scan upload while continuing to play (and make more scans).

    Q: Does the iPhone have the ability to adjust the camera resolution down?

Sign In or Register to comment.