What happened?
Hi, we have the problem that the webcam video is not working in Firefox on Linux (Debian), while it works perfectly on the same systems when using Chromium browser. One affected system is a Lenovo Thinkpad T14 Gen3 on Debian Linux oldstable, running the ESR Firefox from the Debian package repository.
When you start or join a meeting, you are asked for camera and microphone permissions, which works fine. But then in the meeting you only see the first capital letter of your name in a blue circle filling the screen. In the toolbar at the bottom of the window, you can choose the camera button: You can open the camera menu and actually SEE the live webcam video as a small thumbnail! But you can't pick the camera video to be used as your Jitsi input source.
The browser console shows this error message:
[app:tracks] <gc/</<>: Failed to create local tracks Array [ "video" ] TypeError: can't access property "ideal", t.height is undefined jo JitsiLocalTrack.ts:194
Could it be a problem with Firefox expecting more/other data for the JavaScript getUserMedia(...) API? https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia
The problem might be related to #10682 but clearing cookies and cache do not help.
Platform
Browser / app / sdk version
Debian Firefox ESR 140.12.0esr-1~deb12u1
Relevant log output
2026-06-24T09:09:36.290Z [DEBUG] [app:base-conference] <eee>: Wake lock released Logger.js:158:27
2026-06-24T09:09:37.778Z [DEBUG] [app:base-conference] <Q9/<>: Wake lock created. Logger.js:158:27
2026-06-24T09:10:07.763Z [DEBUG] [app:tracks] <gc/<>: (TIME) loadEffects() start=237444, end=237456, time=12 Logger.js:158:27
2026-06-24T09:10:07.764Z [INFO] [rtc:RTCUtils] <624/obtainAudioAndVideoPermissions/o<>: Got media constraints: {"video":{"frameRate":{"max":30,"min":15}},"audio":false} Logger.js:158:27
2026-06-24T09:10:08.185Z [INFO] [rtc:RTCUtils] <624/_getUserMedia/</<>: onUserMediaSuccess Logger.js:158:27
2026-06-24T09:10:08.187Z [ERROR] [app:tracks] <gc/</<>: Failed to create local tracks
Array [ "video" ]
TypeError: can't access property "ideal", t.height is undefined
jo JitsiLocalTrack.ts:194
Ja RTC.js:67
Ja RTC.js:49
obtainAudioAndVideoPermissions RTC.js:187
promise callback*obtainAudioAndVideoPermissions RTC.js:187
createLocalTracks JitsiMeetJS.ts:205
gc functions.web.ts:56
promise callback*gc functions.web.ts:50
XD actions.any.ts:113
R7 Redux
<anonymous> middleware.ts:20
<anonymous> middleware.ts:194
<anonymous> middleware.ts:19
<anonymous> middleware.ts:14
<anonymous> middleware.web.ts:23
<anonymous> middleware.any.ts:40
<anonymous> middleware.ts:38
<anonymous> middleware.ts:80
<anonymous> middleware.ts:60
<anonymous> middleware.ts:72
<anonymous> middleware.ts:43
<anonymous> middleware.ts:267
<anonymous> middleware.ts:28
<anonymous> middleware.ts:155
<anonymous> middleware.ts:7
<anonymous> middleware.ts:37
<anonymous> middleware.ts:22
<anonymous> middleware.ts:101
<anonymous> middleware.ts:66
<anonymous> middleware.ts:50
<anonymous> middleware.web.ts:35
<anonymous> middleware.web.ts:19
<anonymous> middleware.any.ts:52
<anonymous> middleware.ts:60
<anonymous> middleware.web.ts:273
<anonymous> middleware.ts:67
<anonymous> middleware.ts:21
Logger.js:158:27
i Logger.js:158
gc functions.web.ts:71
(Async: promise callback)
gc functions.web.ts:70
(Async: promise callback)
gc functions.web.ts:50
XD actions.any.ts:113
R7 Redux
<anonym> middleware.ts:20
<anonym> middleware.ts:194
<anonym> middleware.ts:19
<anonym> middleware.ts:14
<anonym> middleware.web.ts:23
<anonym> middleware.any.ts:40
<anonym> middleware.ts:38
<anonym> middleware.ts:80
<anonym> middleware.ts:60
<anonym> middleware.ts:72
<anonym> middleware.ts:43
<anonym> middleware.ts:267
<anonym> middleware.ts:28
<anonym> middleware.ts:155
<anonym> middleware.ts:7
<anonym> middleware.ts:37
<anonym> middleware.ts:22
<anonym> middleware.ts:101
<anonym> middleware.ts:66
<anonym> middleware.ts:50
<anonym> middleware.web.ts:35
<anonym> middleware.web.ts:19
<anonym> middleware.any.ts:52
<anonym> middleware.ts:60
<anonym> middleware.web.ts:273
<anonym> middleware.ts:67
<anonym> middleware.ts:21
Reproducibility
More details?
root@vmjitsi ~ # dpkg -l | grep jitsi
ii jitsi-meet 2.0.11031-1 all WebRTC JavaScript video conferences
ii jitsi-meet-prosody 1.0.9268-1 all Prosody configuration for Jitsi Meet
ii jitsi-meet-turnserver 1.0.9268-1 all Configures coturn to be used with Jitsi Meet
ii jitsi-meet-web 1.0.9268-1 all WebRTC JavaScript video conferences
ii jitsi-meet-web-config 1.0.9268-1 all Configuration for web serving of Jitsi Meet
ii jitsi-videobridge2 2.3-295-g8d5c0037b-1 all WebRTC compatible Selective Forwarding Unit (SFU)
ii lua-basexx 0.4.1-jitsi1 all baseXX encoding/decoding library for Lua
ii lua-cjson:amd64 2.1.0.10-jitsi1 amd64 JSON parser/encoder for Lua
What happened?
Hi, we have the problem that the webcam video is not working in Firefox on Linux (Debian), while it works perfectly on the same systems when using Chromium browser. One affected system is a Lenovo Thinkpad T14 Gen3 on Debian Linux oldstable, running the ESR Firefox from the Debian package repository.
When you start or join a meeting, you are asked for camera and microphone permissions, which works fine. But then in the meeting you only see the first capital letter of your name in a blue circle filling the screen. In the toolbar at the bottom of the window, you can choose the camera button: You can open the camera menu and actually SEE the live webcam video as a small thumbnail! But you can't pick the camera video to be used as your Jitsi input source.
The browser console shows this error message:
[app:tracks] <gc/</<>: Failed to create local tracks Array [ "video" ] TypeError: can't access property "ideal", t.height is undefined jo JitsiLocalTrack.ts:194Could it be a problem with Firefox expecting more/other data for the JavaScript
getUserMedia(...)API? https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMediaThe problem might be related to #10682 but clearing cookies and cache do not help.
Platform
Browser / app / sdk version
Debian Firefox ESR 140.12.0esr-1~deb12u1
Relevant log output
Reproducibility
More details?