Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Video input device which was active is no longer available, stopping video #2999

Open
4 tasks done
mnosov622 opened this issue Nov 12, 2024 · 35 comments
Open
4 tasks done

Comments

@mnosov622
Copy link

What happened and what did you expect to happen?

Users on iPad (10th Gen) have Front Ultra Wide Camera as selected camera, then user is then attempting to change to the standard Front Camera. Upon selecting the Front Camera, the camera will work for a moment before cutting out with their video/camera feed then going black.

Here are the errors we get in the logs:

Video input device which was active is no longer available, stopping video.

cannot bind video preview since video input device has not been chosen

could not acquire video input from current device

Issue seems be specifically to Ipads, is this known issue ? Is there a way to overcome that ?

Thank you for response.

Have you reviewed our existing documentation?

Reproduction steps

N/A

Amazon Chime SDK for JavaScript version

3.23.0

What browsers are you seeing the problem on?

Safari (Ipad 10th)

Browser version

safari 17 (17.7.0)

Meeting and Attendee ID Information.

No response

Browser console logs

  1. Video input device which was active is no longer available, stopping video.

  2. cannot bind video preview since video input device has not been chosen

  3. could not acquire video input from current device

  4. Issue seems be specifically to Ipads, is this known issue ? Is there a way to overcome that ?

@hensmi-amazon
Copy link
Contributor

This was an iOS issue that was fixed in iOS 18. For this reason we do not plan on attempting to mitigate this for iOS 17. Please reopen if it is still an issue on iOS 18.

@mnosov622
Copy link
Author

This is still an issue on IOS 18.

@hensmi-amazon hensmi-amazon reopened this Nov 15, 2024
@hensmi-amazon
Copy link
Contributor

hensmi-amazon commented Nov 15, 2024

Got it. Must be a slightly different issue. Can you provide full logs, including WebRTC verbose logs?
Screenshot 2024-08-26 at 2 19 19 PM(1)

@mnosov622
Copy link
Author

I already sent the logs to the AWS Support, let me know if you got it. If not, let me know where else I can send it privately, so I don't send it here.

@hensmi-amazon
Copy link
Contributor

Got it, I should have access to those eventually. They were iOS 18 logs correct? With the verbose browser logs? It should have a lot more then logs from just the SDK.

@mnosov622
Copy link
Author

They were IOS 17 logs from the logrocket, I don't know if you heard of this app. Will it contain verbose browser logs?

If not, could you please send instructions on how to get them ?

@hensmi-amazon
Copy link
Contributor

My bad, I thought you were viewing the logs in Safari desktop app already. You can connect your phone to a MacOS device and get logs by following the steps in this blog: https://www.lifewire.com/activate-the-debug-console-in-safari-445798 . I usually have luck if all devices involved are updated to latest version.

After you have those logs working, navigate to the safari console tab in the image i sent and enable verbose logging for those other 3 settings.

@mnosov622
Copy link
Author

Thank you, but that seems like a lot to ask from a customer to be honest, would the logs that I sent to AWS support be enough? Let me know once you get them please

@hensmi-amazon
Copy link
Contributor

If you have a MacOS device it takes around 2 minutes to set up. The browser logs will not likely have enough information, since I will likely need to cut a ticket to apple. I can see if our QA team can reproduce but it may delay mitigation.

@mnosov622
Copy link
Author

I will check if we can get that information, but hope that those logs might be useful!

@mnosov622
Copy link
Author

Hi!

Do you have any update on this issue ?

@hensmi-amazon
Copy link
Contributor

We are still looking at this internally.

@mnosov622
Copy link
Author

Hi!

@hensmi-amazon I'm a bit confused with instructions. It says how to connect IOS device to Mac, and your picture shows how to enable verbose logs, but where to actually export them ?

@hensmi-amazon
Copy link
Contributor

You can hold off on that for now, I think with the Javascript console logs we have a hypothesis on a possible race condition. Note that if this change went it it would be released mid December.

Regarding the instructions: Safari will add the browser internal logs to the console logs. There are instructions on export here: https://stackoverflow.com/questions/15507059/save-safari-javascript-console-to-file

@mnosov622
Copy link
Author

Got it, thank you! So you don't need other logs for now, correct ?

@hensmi-amazon
Copy link
Contributor

No logs for now, thank you!

@mnosov622
Copy link
Author

Got it! Is this the new feature of Ipads that have Ultra Wide camera and Front Facing camera causing the main issue ?

@hensmi-amazon
Copy link
Contributor

Not sure yet

@mnosov622
Copy link
Author

Hi @hensmi-amazon !

Is there any update on this ?

@hensmi-amazon
Copy link
Contributor

Maybe the internal ticket got lost. But the last thing the other engineer requested was to try to enable the verbose logs as indicated above. They also asked:

Does the customer only see the log: "Video input device which was active is no longer available, stopping video" when the workflow fails? Or is this log message seen every time regardless of failure/success?

@mnosov622
Copy link
Author

@hensmi-amazon I thought you said no need for logs some time ago, so I was waiting. Yes, it happens when they start the video.

@hensmi-amazon
Copy link
Contributor

The other engineer had a theory on the issue, but it turned out they still needed further logs, unfortunately it seems like the support engineer did not forward the request :/.

@mnosov622
Copy link
Author

mnosov622 commented Dec 17, 2024

Is there any way to get those logs without user ? We have logs in logrocket, is that not enough ? I will see how we can get more logs.

@mnosov622
Copy link
Author

That error happens during initialization of the video

@mnosov622
Copy link
Author

@hensmi-amazon we got the logs, where I can send them, don't think it's a good idea to send them here. Also, one person checked it just now, and it worked fine, was there something released ?

@michhyun1
Copy link
Contributor

There wasn't anything released that addressed this - if you can reproduce it, please create a support ticket with AWS Support and paste the logs in the ticket.

@mnosov622
Copy link
Author

I passed the logs with webRTC enabled to AWS support team as requested by @hensmi-amazon , hopefully you receive them soon! Please update me on anything that needs as well as any news regarding this issue.

@mnosov622
Copy link
Author

Hello @michhyun1 , @hensmi-amazon , did you get the logs that I sent to AWS chime support ?

@hensmi-amazon
Copy link
Contributor

Hello again, just want to say sorry for the delay. Holidays and internal/external tracking were a tough combination. Thank you for the logs.

First, can you provide a code snippet for how you are calling startVideoInput (are you awaiting this?) and startVideoPreviewForVideoInput? It seems like the latter is called before the former (which has async calls to the browser) completes.

@mnosov622
Copy link
Author

Hi !

No problem, understand. Again, this works for all browsers and devices, except the iPad one, we are checking if issues is resolved, since I found the following on github:

#1059 and it says:

In iPad devices running iOS 17, the local camera may go blank. This is fixed in iOS 18. Am I understanding this correctly ?

We use it :

await meetingSession.audioVideo.startVideoInput(selectedCameraId);

@hensmi-amazon
Copy link
Contributor

That was what i was initially thinking, but you mentioned that this still reproduced in iOS 18 so it must be a different issue. Can you provide the snippet that includes the call to startVideoPreviewForVideoInput? Is that being done right after?

@mnosov622
Copy link
Author

mnosov622 commented Jan 16, 2025

I will double check for IOS 18, but did you receive the logs, were they helpful?

meetingSession.audioVideo.startVideoPreviewForVideoInput( videoRef.current );

yes after

@hensmi-amazon
Copy link
Contributor

Do you mean that the code is

await meetingSession.audioVideo.startVideoInput(selectedCameraId);
meetingSession.audioVideo.startVideoPreviewForVideoInput( videoRef.current );

?

I'm asking because i see the following in the logs

**  - requesting new video device with constraint \{"video":\{"deviceId":\{"exact":"9FF432D16E39613A8D1AA0B8DE3C5CDCA2D57FC5"\},"width":\{"ideal":960\},"height":\{"ideal":540\},"frameRate":\{"ideal":15\}\}\} (39788c8c7bfb53cb083d.js, line 2)\**
[Log] Console-Error: wanr:  \'96 "cannot bind video preview since video input device has not been chosen" (39788c8c7bfb53cb083d.js, line 2)\
[Warning] 2024-12-18T20:22:01.931Z [WARN] OWlVideo - cannot bind video preview since video input device has not been chosen (39788c8c7bfb53cb083d.js, line 2)\
[Info] 2024-12-18T20:22:01.931Z [INFO] OWlVideo - API/DefaultDeviceController/startVideoPreviewForVideoInput "" (39788c8c7bfb53cb083d.js, line 2)\
[Info] 2024-12-18T20:22:01.931Z [INFO] OWlVideo - API/DefaultAudioVideoFacade/3c736fec-734e-4f1a-9fc5-0ca70f472713/567754c6-9d68-1c54-3233-86fd634b8fbb/startVideoPreviewForVideoInput "" (39788c8c7bfb53cb083d.js, line 2)\
[Error] Not allowed to load local resource: blob://nullhttps//st-aws-video.owlpractice.ca/estimator-v1.js.map\
[Error] Not allowed to request resource\
[Error] Cannot load blob://nullhttps//st-aws-video.owlpractice.ca/estimator-v1.js.map due to access control checks.\
[Info] 2024-12-18T20:22:02.145Z [INFO] OWlVideo - Supports SIMD: true (force: false) (39788c8c7bfb53cb083d.js, line 2)\
[Info] Running 3 iterations\'85 (83ec35a1-f904-402e-a985-6e69ddd08bb2, line 4)\
** 2024-12-18T20:22:02.417Z [INFO] OWlVideo - got video device for constraints \{"video":\{"deviceId":\{"exact":"9FF432D16E39613A8D1AA0B8DE3C5CDCA2D57FC5"\},"width":\{"ideal":960\},"height":\{"ideal":540\},"frameRate":\{"ideal":15\}\}\} (39788c8c7bfb53cb083d.js, line 2)\
** 2024-12-18T20:22:02.418Z [INFO] OWlVideo - API/DefaultDeviceController/startVideoInputDevice "9FF432D16E39613A8D1AA0B8DE3C5CDCA2D57FC5" (39788c8c7bfb53cb083d.js, line 2)\

The logs that start with ** are from startVideoInput, which seems to imply that startVideoPreviewForVideoInput was running during the request. When you do this during the actual meeting, does the other side also see a blank tile?

@mnosov622
Copy link
Author

Hi, now it's a bit different, we had a person with Ipad IOS 18 version.

Here is what we found:

I joined as the therapist (on computer) first and then as the client (on iPad). When I was in the preview before entering the call, all the camera options on iPad were working fine, but once the therapist admitted the client, now the camera is not working anymore.

Once the therapist left the session, the camera on ipad works again .

What could be happening ? It seems like Safari is handling things differently ?

@hensmi-amazon
Copy link
Contributor

Can you provide a meeting ID and console logs again? The full logs, not just a snippet :). You can post here or the support ticket but i will see it much faster here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants