stanfordnmbl / opencap-iphone

Apache License 2.0
0 stars 1 forks source link

App freezes #27

Open suhlrich opened 1 year ago

suhlrich commented 1 year ago

The app freezes during collection sometimes. The video on device screen freezes, and it stops pinging the server. Fine with close and restart. Any ideas @xhardcorex?

xhardcorex commented 1 year ago

I will investigate it

xhardcorex commented 1 year ago

Have someone faced this bug recently and could provide more details how to reproduce it? Unfortunately, I still can't reproduce it

suhlrich commented 1 year ago

It has been a few weeks since someone has told us about it. We will check.

suhlrich commented 1 year ago

The app froze for me today. Here's how it happened:

I had scanned a qr code, and after a few minutes, i got the "disable portrait mode" warning. The phone was oriented horizontally. I swiped up to see if portrait lock was on, and it was not. I then swiped up out of the app (did not close), then came back in. The "disable portrait mode" warning went away, but then the video viewfinder was frozen. I was able to press the gear, start a new session, and everything worked ok after that.

xhardcorex commented 1 year ago

@suhlrich I have configured observer for tracking capture session errors which can help us to catch freeze error. Do I need to present alert with the error description for this case or maybe do you have API which can I use to send logs on the backend? Thanks!

suhlrich commented 1 year ago

Let’s just do an alert for now. Isn’t it possible when testing on TestFlight to send errors to the developer?

On May 3, 2023, at 1:08 PM, Nikita Shebeda @.***> wrote:



@suhlrichhttps://github.com/suhlrich I have configured observer for tracking capture session errors which can help us to catch freeze error. Do I need to present alert with the error description for this case or maybe do you have API which can I use to send logs on the backend? Thanks!

— Reply to this email directly, view it on GitHubhttps://github.com/stanfordnmbl/opencap-iphone/issues/27#issuecomment-1533666826, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AKOYGJ3Q7AYB4MBFZCLP7STXEK3MLANCNFSM6AAAAAAW4EDX4E. You are receiving this because you were mentioned.Message ID: @.***>

suhlrich commented 1 year ago

@xhardcorex - i got the app to freeze again today. I just stopped a recording and the viewfinder froze (it was also not uploading videos). Buttons were still working. Can we add a button to send logs when this happens? I did not get an alert on the device.

suhlrich commented 1 year ago

@xhardcorex, if we want to send logs to server, we can upload a txt file the same way we do a video. Get an S3 link, then post using same parameters as we do for a video.

xhardcorex commented 1 year ago

Got it and will do. Now we have in the build 1.6(25) observer to catch this error and presents alert.

suhlrich commented 1 year ago

Thanks! Had the phones freeze this weekend, here is what I noticed.

1) we got something like 'AVCapture Runtime Error' several times. On many of these, if you closed the app and re-opened, you could not get the camera viewer (just a fully blue screen). You couldn't even use the native camera app. It's like the app died without releasing the AVCapture socket or something. Restarting phone solved it. I can't say this for sure, but I have not seen this type of freezing behavior happen prior to release 1.6(25), but I haven't stress tested (24). 2) sometimes it froze with no error shown. It looked like this happened when we stopped a recording (the person was still in frame)

xhardcorex commented 1 year ago

Could you please provide device model and iOS version of device you tested? Will you have a chance to record the screen(approximately for 10-15 seconds) when you stuck the freeze next time and share with me the video? Thanks!

suhlrich commented 1 year ago

It happened on these two devices:

iphone 12 Pro. ios 16.4.1 (20E252) iphone 12. ios 16.4.1(a) (20E252)

And yes, next time I will take a video of the screen. Good idea.

suhlrich commented 1 year ago

@xhardcorex would it be possible to have a button on the error dialog that shows up that says "send error message to developers." when they press it, we upload to the database just like a video?

Let's not push this before this weekend (we have a big data collection over the weekend and I'd like to use a stable build), but if we could have it sometime next week, that'd be awesome!

xhardcorex commented 1 year ago

@suhlrich Yes, I can implement it next week.

xhardcorex commented 1 year ago

@suhlrich Could I implement error dialog with possibility to send message with error?

suhlrich commented 1 year ago

that's a nice solution. would it be hard to email the error to one of us, or is it best to upload to the server. If we go to server, we'll have no way to know, unless it was us who collected the data.

Scott Uhlrich, PhD Director of Research | Human Performance Lab Bioengineering Department Stanford University https://nmbl.stanford.edu/people/scott-uhlrich/websitehttps://nmbl.stanford.edu/people/scott-uhlrich/


From: Nikita Shebeda @.> Sent: Wednesday, May 24, 2023 1:50 PM To: stanfordnmbl/opencap-iphone @.> Cc: Scott David Uhlrich @.>; Mention @.> Subject: Re: [stanfordnmbl/opencap-iphone] App freezes (Issue #27)

@suhlrichhttps://github.com/suhlrich Could I implement error dialog with possibility to send message with error?

— Reply to this email directly, view it on GitHubhttps://github.com/stanfordnmbl/opencap-iphone/issues/27#issuecomment-1561908053, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AKOYGJ3L2UNTURT7LPAJBHTXHZYAPANCNFSM6AAAAAAW4EDX4E. You are receiving this because you were mentioned.Message ID: @.***>

xhardcorex commented 1 year ago

Got it. Unfortunatelly Apple blocked possibility to send mails automatically without using "MFMailComposeViewController". image

But we can connect API for sending messages like Brevo, Postmark or similar.

Also, I like to use Firebase Crashlytics for this case. We can track crashes, warnings, not critical issues. It's really powerful service that easy to setup and for free. Please take a look screenshot Crashlytics screenshot from one of my project. Let me know your thoughts. Screenshot 2023-05-29 at 12 59 39

suhlrich commented 1 year ago

Firebase Crashlytics seems like a great platform. Go ahead and set it up.

suhlrich commented 1 year ago

Here are the 2 types of crashes we've been getting.

First: the viewer freezes, seemingly after trial stopped and in process of uploading (person still in view). Without closing the app, you can get out of it by starting a new session. This crash has been happening for several months.

https://github.com/stanfordnmbl/opencap-iphone/assets/43877159/f064309a-f324-464f-babe-487fd1feec91

Second: the viewer freezes, you cannot get viewer to reappear with start new session or closing/restarting the app. The iphone camera app also will not work. Only sol'n I've found is restarting phone. The first version I noticed this crash on was 1.6 (24)

https://github.com/stanfordnmbl/opencap-iphone/assets/43877159/f47b6ca5-3ad2-4a53-9c9d-0bb93eab483e

xhardcorex commented 1 year ago

Ok, I will integrate Firebase Crashlytics to the project and sort out crashes you provided above.

xhardcorex commented 1 year ago

@suhlrich Could you please provide list of emails of users to whom I should invite to Firebase?