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

Screen Sharing is Not Working - NOT Wayland #1331

Open
Ryushin opened this issue Jul 6, 2024 · 40 comments
Open

Screen Sharing is Not Working - NOT Wayland #1331

Ryushin opened this issue Jul 6, 2024 · 40 comments

Comments

@Ryushin
Copy link

Ryushin commented Jul 6, 2024

Describe the bug
Clicking share screen brings up the option to share screen and click on it:

Teams_Share_Screen_1

Shows the option to select the Entire Screen and clicking on it never results in sharing the screen. You can't close this bottom panel either and I have exit the application to get it to go away:

Teams_Share_Screen_2

I have been using teams-for-linux since late last year. Screen sharing has never worked for me. If I need to share my screen I've been having to use Microsoft's abandoned v1.5 Teams Preview.

Desktop (please complete the following information):

  • OS: Devuan Daedalus (Debian Bookworm)
  • Installation package: Deb
  • Version: 1.7.5

Debug

/opt/teams-for-linux/teams-for-linux --appTitle "Teams - Giant" --customUserDir="/home/chris/.teams-for-linux_data/giant" --WebDebug --appLogLevels=error,info,warn,debug
[DEBUG] configPath:,/home/chris/.teams-for-linux_data/giant
[DEBUG] configFile:,[object Object]
[DEBUG] Custom background service url is 'http://localhost'
[DEBUG] processArgs:,/opt/teams-for-linux/teams-for-linux,--appTitle,Teams - Giant,--customUserDir=/home/chris/.teams-for-linux_data/giant,--WebDebug,--appLogLevels=error,info,warn,debug
[DEBUG] testing RegExp processArgs false
[DEBUG] testing RegExp processArgs false
[DEBUG] testing RegExp processArgs false
[DEBUG] testing RegExp processArgs false
[DEBUG] testing RegExp processArgs false
[DEBUG] testing RegExp processArgs false
[DEBUG] Testing network using net.request() for https://teams.microsoft.com/
[DEBUG] Language codes en set for spellchecker
[DEBUG] Network test successful with method https
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
[10199:0706/065614.522921:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.ScreenSaver.GetActive: object_path= /org/freedesktop/ScreenSaver: org.freedesktop.DBus.Error.UnknownMethod: Unknown method GetActive or interface org.freedesktop.ScreenSaver.
[DEBUG] did-frame-finish-load,[object Object],true
[DEBUG] did-finish-load
[DEBUG] Badge count set to '0'
[DEBUG] Badge count set to '0'
[DEBUG] Badge count set to '0'
[DEBUG] did-frame-finish-load,[object Object],false
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 4s, IdleState: 'active'
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 3s, IdleState: 'active'
[10199:0706/065653.018148:ERROR:window_capturer_x11.cc(145)] The window is no longer valid.
[10199:0706/065654.395021:ERROR:window_capturer_x11.cc(145)] The window is no longer valid.
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
[10199:0706/065654.686107:ERROR:window_list_utils.cc(142)] Failed to query for child windows for screen 0
[10199:0706/065656.564825:ERROR:window_capturer_x11.cc(145)] The window is no longer valid.
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
@IsmaelMartinez
Copy link
Owner

IsmaelMartinez commented Jul 6, 2024

Thanks for reporting. The following line seems to indicate is something to do with wayland.

[10199:0706/065614.522921:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.ScreenSaver.GetActive: object_path= /org/freedesktop/ScreenSaver: org.freedesktop.DBus.Error.UnknownMethod: Unknown method GetActive or interface org.freedesktop.ScreenSaver

https://askubuntu.com/questions/1510794/chrome-124-hangs-doesnt-attach-to-wayland says using the ozone-platform=wayland should work, so maybe try that config option.

https://github.com/IsmaelMartinez/teams-for-linux/tree/develop/app/config#electron-cli-flags

Looking at the logs, your config should be under /home/chris/.teams-for-linux_data/giant/config.json. Add those lines and see if that works (hopefully it does).

If you need to try multiple options, enable the watchConfigFile that will auto restart the app after each change.

@cim--
Copy link

cim-- commented Jul 8, 2024

In my case (which may or may not be the same; the symptoms are identical except that it only happens 50-60% of the time) this issue isn't likely to be wayland-related as my desktop environment is wmaker under X11, with wayland not installed.

I do also get that ScreenSaver error line. Explicitly setting ["ozone-platform","x11"] in the config doesn't stop it, though I'll see if it makes any difference to screen sharing itself working.

@IsmaelMartinez
Copy link
Owner

Maybe the app is incorrectly thinking is wayland. You should be able to play with the same settings as chrome, that most are supported (I think)

@Ryushin Ryushin changed the title Sceen Sharing is Not Working Screen Sharing is Not Working Jul 8, 2024
@Ryushin
Copy link
Author

Ryushin commented Jul 8, 2024

Yea, I'm not running Wayland either but X11 and XFCE4. I'll do some testing with the links that you posted.

I am running the nVidia driver though. Not sure if that would cause a problem or not.

@XZ02R
Copy link

XZ02R commented Jul 9, 2024

While I'm not on X and am using Wayland, since Devuan is based on Debian I assume it comes with the exact same packages as the current stable (Bookworm).

For Debian 12 stable running Sway on Wayland, I was able to get screensharing working after using a backported version of Pipewire since it seems the version packaged in Bookworm was too old.

Current stable Pipewire: 0.3.65
Backported Pipewire: 1.2.0

sudo apt -t bookworm-backports install --upgrade pipewire

Also compared to screensharing on windows, there doesn't seem to be a preview on what is being shared for the host while on screensharing on Linux. So to avoid wondering why screensharing is seemingly not working, you should send a meeting invite to yourself and open it via a browser to get a guest view of the screen being shared.

Extra notes:

  • OS: Debian 12 Bookworm
  • Installation package: Flatpak
  • Version: 1.7.5

@Ryushin
Copy link
Author

Ryushin commented Jul 9, 2024

While I'm not on X and am using Wayland, since Devuan is based on Debian I assume it comes with the exact same packages as the current stable (Bookworm).

For Debian 12 stable running Sway on Wayland, I was able to get screensharing working after using a backported version of Pipewire since it seems the version packaged in Bookworm was too old.

Current stable Pipewire: 0.3.65 Backported Pipewire: 1.2.0

sudo apt -t bookworm-backports install --upgrade pipewire

Yea, Devuan pretty much uses 98% of all the Debian packages. Though dbus is modified by the Devuan group:

dpkg -l "*dbus*" | grep ii | grep devuan | awk {'print $2," " , $3'}
dbus   1.14.10-1~deb12u1devuan1
dbus-bin   1.14.10-1~deb12u1devuan1
dbus-daemon   1.14.10-1~deb12u1devuan1
dbus-session-bus-common   1.14.10-1~deb12u1devuan1
dbus-system-bus-common   1.14.10-1~deb12u1devuan1
dbus-x11   1.14.10-1~deb12u1devuan1
libdbus-1-3:amd64   1.14.10-1~deb12u1devuan1
libdbus-1-3:i386   1.14.10-1~deb12u1devuan1
libdbus-1-dev:amd64   1.14.10-1~deb12u1devuan1

Upgrading pipewire didn't seem to fix anything. I have not had time to dig into those two links that IsmaelMartinez posted yet. I'm hoping to work on that today.

@philschenker
Copy link

I'm on Ubuntu which uses Wayland by default. Teams is running in XWayland on my setup hence this is impossible to share screen, since XWayland windows cannot get the screen of Wayland.

In order for this to work the electron-app has to run in wayland. As already shared by Ismael ozone-platform=wayland is the way to go. Then further we need https://github.com/flatpak/xdg-desktop-portal that is the standard way on wayland to share the screen.

I have no Idea how to implement this in this repo with snap/flatpak etc.

@paulorangeljr
Copy link

I was facing the same problem with screen sharing on Ubuntu 22.04.4 with wayland installing this app trough snap. I've uninstalled it and installed with apt repo and now my screen sharing is working.

@XZ02R
Copy link

XZ02R commented Jul 11, 2024

I have no Idea how to implement this in this repo with snap/flatpak etc.

I'm not sure about Snaps, but Flatpak users can install Flatseal to make Teams run on Wayland.

Specifically, they would need to add ELECTRON_OZONE_PLATFORM_HINT=auto to the Environment section in Flatseal.

I've attached images showing what Flatseal options I've enabled to force the Flatpak into Wayland mode.

Flatseal settings

tmp1
tmp2

Maybe this info could be added to the wiki/description since some other issues have noted problems with screensharing on the Flatpak version as well.

Also to verify that the Flatpak is running on Wayland, Sway users can add for_window [shell = "xwayland"] title_format "[XWayland] %title" to their configs. If they have titlebars enabled, apps not running on Wayland will have [XWayland] appended to the title. I'm not sure how you can check this on other DE/WMs though.

@philschenker
Copy link

Thank you XZ02R! ELECTRON_OZONE_PLATFORM_HINT=auto flatpak run com.github.IsmaelMartinez.teams_for_linux and I can at leas select windows/screens to share so it seems to work. Have to confirm with a coworker later.

Can't this env be set somewhere by default?

@cim--
Copy link

cim-- commented Jul 11, 2024

As far as I can tell from the documentation, setting "auto" shouldn't cause a problem for X11, though I doubt it will solve this issue there either (unfortunately I won't be able to test it either way for a few weeks now)

@Ryushin
Copy link
Author

Ryushin commented Jul 11, 2024

I had some time to test today. Adding option results in a crash. I tried x11 and auto. Running chromium manually doesn't work either "chromium --ozone-platform=auto". Doing some googling it says to try hint, so "chromium --ozone-platform-hint=auto" does open chromium, but =xll does not. It ends up throwing an error about Invalid ozone platform:

chromium --ozone-platform=auto
[18870:18870:0711/111036.489231:FATAL:platform_selection.cc(45)] Invalid ozone platform: auto, use --ozone-platform-hint=auto instead?
Trace/breakpoint trap

Using the hint in the config file

My config.json file:

{
        "watchConfigFile":true,
        "optInTeamsV2":true,
        "useMutationTitleLogic":true,
        "spellCheckerLanguages":"en",
        "electronCLIFlags": [ ["ozone-platform-hint","auto"],
                "disable-software-rasterizer"
        ]
}

Web Debug:

/opt/teams-for-linux/teams-for-linux --appTitle "Teams - Giant" --customUserDir="/home/chris/.teams-for-linux_data/giant" --WebDebug --appLogLevels=error,info,warn,debug
[DEBUG] configPath:,/home/chris/.teams-for-linux_data/giant
[DEBUG] configFile:,[object Object]
[DEBUG] Adding electron CLI flag 'ozone-platform-hint' with value 'auto'
[DEBUG] Adding electron CLI flag 'disable-software-rasterizer'
[DEBUG] Custom background service url is 'http://localhost'
[DEBUG] processArgs:,/opt/teams-for-linux/teams-for-linux,--appTitle,Teams - Giant,--customUserDir=/home/chris/.teams-for-linux_data/giant,--WebDebug,--appLogLevels=error,info,warn,debug
[DEBUG] testing RegExp processArgs false
[DEBUG] testing RegExp processArgs false
[DEBUG] testing RegExp processArgs false
[DEBUG] testing RegExp processArgs false
[DEBUG] testing RegExp processArgs false
[DEBUG] testing RegExp processArgs false
[DEBUG] Testing network using net.request() for https://teams.microsoft.com/
[DEBUG] Language codes en set for spellchecker
[DEBUG] Network test successful with method https
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 1s, IdleState: 'active'
[14921:0711/110455.073316:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.ScreenSaver.GetActive: object_path= /org/freedesktop/ScreenSaver: org.freedesktop.DBus.Error.UnknownMethod: Unknown method GetActive or interface org.freedesktop.ScreenSaver.
[DEBUG] did-frame-finish-load,[object Object],true
[DEBUG] did-finish-load
[DEBUG] Badge count set to '0'
[DEBUG] Badge count set to '0'
[DEBUG] Badge count set to '0'
[DEBUG] did-frame-finish-load,[object Object],false
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
[DEBUG] Badge count set to '0'
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
[14921:0711/110538.110513:ERROR:window_list_utils.cc(142)] Failed to query for child windows for screen 0
[14921:0711/110538.145814:ERROR:window_capturer_x11.cc(145)] The window is no longer valid.
[14921:0711/110538.206134:ERROR:window_capturer_x11.cc(145)] The window is no longer valid.
[14921:0711/110538.259468:ERROR:window_capturer_x11.cc(145)] The window is no longer valid.
[14921:0711/110538.419846:ERROR:window_capturer_x11.cc(145)] The window is no longer valid.
[14921:0711/110538.459572:ERROR:window_capturer_x11.cc(145)] The window is no longer valid.
[14921:0711/110538.726321:ERROR:window_capturer_x11.cc(145)] The window is no longer valid.
[14921:0711/110538.877944:ERROR:window_list_utils.cc(142)] Failed to query for child windows for screen 0
[14921:0711/110539.025671:ERROR:window_list_utils.cc(142)] Failed to query for child windows for screen 0
[14921:0711/110539.126180:ERROR:window_list_utils.cc(142)] Failed to query for child windows for screen 0
[14921:0711/110539.210188:ERROR:window_capturer_x11.cc(145)] The window is no longer valid.
[14921:0711/110540.084454:ERROR:window_capturer_x11.cc(145)] The window is no longer valid.
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
^C[DEBUG] before-quit
[DEBUG] window close
[DEBUG] window closed
[DEBUG] will-quit
[DEBUG] quit

When I clicked to share my screen, the "Failed to query for child windows for screen 0" occurred.

So not sure what the problem is. Could be the whole proprietary nVidia driver.

@philschenker
Copy link

@Ryushin It's hard to judge what's wrong on your side. From a higher level I would check the following:

  1. Which windowing system you are running wayland/x11
  2. If you're running wayland (which I believe since you have bookworm based system)
    -> You have to get teams-for-linux running also in wayland. I usually check with the x11-apps program xeyes If xeyes can see the cursor in teams it means it runs in x11
  3. Somewhere xdg-desktop-portal needs to be installed for your desktop system (gnome, kde, sway etc.). Otherwise it won't work too

Getting it to run with wayland and having the portal thing installed in my experience it should just work.

@IsmaelMartinez
Copy link
Owner

I am starting to think this is many issues group together... I can try to merge the wayland fix soon (probably not today) and see if that helps but I suspect the problem is more on the auto detect if it is wayland or x11. If that is the case, it might be better warning the user to use the appropriate config (and for us to find that) instead of trying to hardcode it.

I don't have experience in x11/wayland and xwayland and can't test the different (stuck on a mac), so I will see if I can get an old laptop configured and can test this in linux.

@Ryushin
Copy link
Author

Ryushin commented Jul 12, 2024

@Ryushin It's hard to judge what's wrong on your side. From a higher level I would check the following:

1. Which windowing system you are running wayland/x11

2. If you're running wayland (which I believe since you have bookworm based system)
   -> You have to get teams-for-linux running also in wayland. I usually check with the x11-apps program `xeyes` If xeyes can see the cursor in teams it means it runs in x11

3. Somewhere xdg-desktop-portal needs to be installed for your desktop system (gnome, kde, sway etc.). Otherwise it won't work too

Getting it to run with wayland and having the portal thing installed in my experience it should just work.

I'm still using X11. Still rocking my original Debian Potato install and apt-get dist-upgrade all these years and switched to Devuan when Jessie was out and the whole system init thing happened in Debian.

xdg-desktop-portal is installed.

@IsmaelMartinez is probably right, there is probably multiple problems here.

@alexconst
Copy link

alexconst commented Jul 24, 2024

My comment isn't directed at teams-for-linux but at the underlying OS ecosystem.

I joined a meeting with both Chromium and Firefox but was unable to share my screen. The option to show "tab, window, desktop" shows up and I click share but then nothing happens. On Firefox it even shows the "stop sharing" but nothing is actually shared.
This was in Debian with X11 and XFCE

My comment is just a suggestion for other people to check if they can share their screen with the browser. Maybe that can help in figuring out the root cause.

@j-palms
Copy link

j-palms commented Jul 26, 2024

For a while now, I have a similar problem with Arch Linux and Hyprland (wayland). When I try screen sharing there pops up a prompt to select the shared window. After choosing it, the window closes, but nothing is shared. I also tried using flags like ozone-platform=wayland from this AUR package: https://aur.archlinux.org/packages/teams-for-linux-wayland-hook, but nothing changed. I also did the xdg-desktop-portal configuration.
However, it does work if I'm using the Teams web app with Chromium!

The debug log: (at the end there are related ERROR messages)

[DEBUG] configFile:,[object Object]
[INFO] Running under Wayland, switching to PipeWire...
[DEBUG] Custom background service url is 'http://localhost'
[DEBUG] processArgs:,/opt/teams-for-linux/teams-for-linux,--enable-features=UseOzonePlatform,--ozone-platform=wayland
[DEBUG] testing RegExp processArgs false
[DEBUG] testing RegExp processArgs false
[DEBUG] testing RegExp processArgs false
[DEBUG] Testing network using net.request() for https://teams.microsoft.com/
[DEBUG] Spellchecker is disabled!
[DEBUG] Network test successful with method https
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
[20357:0726/165522.895134:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.ScreenSaver.GetActive: object_path= /org/freedesktop/ScreenSaver: org.freedesktop.DBus.Error.UnknownMethod: Unknown method GetActive or interface org.freedesktop.ScreenSaver.
[DEBUG] did-frame-finish-load,[object Object],true
[DEBUG] did-finish-load
[DEBUG] Badge count set to '0'
[DEBUG] Badge count set to '0'
[DEBUG] Badge count set to '0'
[DEBUG] did-frame-finish-load,[object Object],false
[DEBUG] Badge count set to '0'
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
[DEBUG] Badge count set to '0'
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveChec
kPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
[DEBUG] Badge count set to '0'
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'locked'
[20357:0726/165553.232771:ERROR:egl_dmabuf.cc(608)] Failed to record frame: Error creating EGLImage - EGL_BAD_MATCH
[20357:0726/165553.232806:ERROR:shared_screencast_stream.cc(912)] Dropping DMA-BUF modifier: 144115206334822913 and trying to renegotiate stream parameters
[20357:0726/165554.251386:ERROR:egl_dmabuf.cc(608)] Failed to record frame: Error creating EGLImage - EGL_BAD_MATCH
[20357:0726/165554.251416:ERROR:shared_screencast_stream.cc(912)] Dropping DMA-BUF modifier: 144115206334822657 and trying to renegotiate stream parameters
[20357:0726/165554.259614:ERROR:egl_dmabuf.cc(608)] Failed to record frame: Error creating EGLImage - EGL_BAD_MATCH
[20357:0726/165554.259650:ERROR:shared_screencast_stream.cc(912)] Dropping DMA-BUF modifier: 144115206334806273 and trying to renegotiate stream parameters
'loop->recurse > 0' failed at ../pipewire/src/pipewire/thread-loop.c:425 pw_thread_loop_wait()
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'locked'
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'locked'

@vidoardes
Copy link

My comment isn't directed at teams-for-linux but at the underlying OS ecosystem.

I joined a meeting with both Chromium and Firefox but was unable to share my screen. The option to show "tab, window, desktop" shows up and I click share but then nothing happens. On Firefox it even shows the "stop sharing" but nothing is actually shared. This was in Debian with X11 and XFCE

My comment is just a suggestion for other people to check if they can share their screen with the browser. Maybe that can help in figuring out the root cause.

I can confirm I recently have started having this issue (Fedora 40) and it also affects Chromium, so likely not a specific app issue. Setting ELECTRON_OZONE_PLATFORM_HINT=auto did not fix my issue.

@royborgen
Copy link

royborgen commented Aug 15, 2024

I am having issues with screen sharing using the snap package in Ubuntu 24.04 under Wayland. I have tested under X11 and it works fine. Under Wayland I get a message saying "Your video isn't working" "We couldn't access your camera". Just to be clear, webcam works just fine. I am quite sure this is a Wayland issue. I also tested with the latest/edge release v. 1.9.0, same problem.

@IsmaelMartinez
Copy link
Owner

You aren't alone reporting issues with wayland. It is pretty difficult to understand what the issue is, to be honest, as some solutions works for some people, while for others seems like nothing works. One of those mad linux env configuration issues I think.

@sebma
Copy link

sebma commented Sep 3, 2024

Hi, I have the same problem with the snap v1.9.6 teams-for-linux package on Ubuntu 24.04 with Gnome+Wayland.

@IsmaelMartinez IsmaelMartinez changed the title Screen Sharing is Not Working Screen Sharing is Not Working - Wayland Sep 3, 2024
@IsmaelMartinez IsmaelMartinez changed the title Screen Sharing is Not Working - Wayland Screen Sharing is Not Working - NOT Wayland Sep 3, 2024
@IsmaelMartinez
Copy link
Owner

Hi @sebma , have you tried the multiple options provided? Most users seem to have got it working with the solutions provided. Otherwise, can you open a new issue and fill the template with logs and as much info as possible. Thanks

@gawpertron
Copy link

gawpertron commented Sep 25, 2024

I've recently upgraded to Ubuntu 22.04 and tried snap installtions of teams-for-linux version 1.9.6 and 1.11.0 and I wasn't able to share my screen. I was only able to share my screen once I had change wayland to x11 by setting WaylandEnable=false in /etc/gdm3/custom.conf and restarting.

I've not incounted any side effects yet since. But there does seem to be an issue using the wayland default

@IsmaelMartinez
Copy link
Owner

Sorry to hear. This issue is related to screen sharing not working for non wayland, but glad you got it working.

@IsmaelMartinez
Copy link
Owner

@Ryushin , did you manage to get this working? Maybe is your chromium that needs to be clean and re-installed. Re-reading your messages, if chromium doesn't work, teams will struggle to work (as it uses your chromium in some systems - I think). Hope helps

@Ryushin
Copy link
Author

Ryushin commented Oct 2, 2024

@Ryushin , did you manage to get this working? Maybe is your chromium that needs to be clean and re-installed. Re-reading your messages, if chromium doesn't work, teams will struggle to work (as it uses your chromium in some systems - I think). Hope helps

So I did more testing, afraid the same problem is still occurring. I apt purged and re-installed chrome:

dpkg -l "*chromium*" | grep ii
ii  chromium                     129.0.6668.70-1~deb12u1 amd64        web browser
ii  chromium-common              129.0.6668.70-1~deb12u1 amd64        web browser - common resources used by the chromium packages
ii  chromium-driver              129.0.6668.70-1~deb12u1 amd64        web browser - WebDriver support
ii  chromium-sandbox             129.0.6668.70-1~deb12u1 amd64        web browser - setuid security sandbox for chromium

The debug looks interesting now, perhaps that will help. "The window is no longer valid" occurred when I tried to share my screen.

/opt/teams-for-linux/teams-for-linux --customUserDir="/home/chris/.teams-for-linux_data/giant" "msteams://teams.microsoft.com/l/meetup-join/19%3ameeting_OGU5YzJiYWItMzE4Mi00YWYyLWJlZmItNDZhMmI0Y2EwMDhj%40thread.v2/0?context=%7b%22Tid%22%3a%229059ad16-0e78-495c-822e-cf1fb88d6c34%22%2c%22Oid%22%3a%22991b4881-27db-490b-9e04-3ecd6f92d90a%22%7d" --WebDebug --appLogLevels=error,info,warn,debug
all good with appLogLevels you aren't using them
Initialising logger with config: "{}"
Logger initialised with transports: {}
07:59:22.827 › File logging at /home/chris/.teams-for-linux_data/giant/logs/main.log with level silly
07:59:22.829 › Console logging enabled with level silly
07:59:22.829 › Logger initialised
07:59:22.829 › configPath: /home/chris/.teams-for-linux_data/giant
07:59:22.829 › configFile: {
  watchConfigFile: true,
  optInTeamsV2: true,
  useMutationTitleLogic: true,
  spellCheckerLanguages: 'en',
  electronCLIFlags: [ [ 'ozone-platform-hint', 'auto' ], 'disable-software-rasterizer' ]
}
07:59:22.832 › Adding electron CLI flag 'ozone-platform-hint' with value 'auto'
07:59:22.832 › Adding electron CLI flag 'disable-software-rasterizer'
07:59:22.890 › App already running
You have mail in /var/mail/chris
chris@muaddib:~$ /opt/teams-for-linux/teams-for-linux --customUserDir="/home/chris/.teams-for-linux_data/scg" --WebDebug --appLogLevels=error,info,warn,debug
all good with appLogLevels you aren't using them
Initialising logger with config: "{}"
Logger initialised with transports: {}
05:39:08.410 › File logging at /home/chris/.teams-for-linux_data/scg/logs/main.log with level silly
05:39:08.413 › Console logging enabled with level silly
05:39:08.414 › Logger initialised
05:39:08.414 › configPath: /home/chris/.teams-for-linux_data/scg
05:39:08.414 › configFile: {
  optInTeamsV2: true,
  appIcon: '/home/chris/Images/Icons/SCG_Logo.png',
  useMutationTitleLogic: true,
  spellCheckerLanguages: 'en'
}
05:39:08.743 › processArgs: [
  '/opt/teams-for-linux/teams-for-linux',
  '--customUserDir=/home/chris/.teams-for-linux_data/scg',
  '--WebDebug',
  '--appLogLevels=error,info,warn,debug'
]
05:39:08.745 › testing RegExp processArgs false
05:39:08.745 › testing RegExp processArgs false
05:39:08.745 › testing RegExp processArgs false
05:39:08.746 › testing RegExp processArgs false
05:39:08.747 › Testing network using net.request() for https://teams.microsoft.com
05:39:08.749 › Language codes en set for spellchecker
05:39:09.062 › Network test successful with method https
05:39:09.521 › GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 1s, IdleState: 'active'
[1217:1002/053909.524797:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.ScreenSaver.GetActive: object_path= /org/freedesktop/ScreenSaver: org.freedesktop.DBus.Error.UnknownMethod: Unknown method GetActive or interface org.freedesktop.ScreenSaver.
05:39:10.270 › did-frame-finish-load {} true
05:39:10.271 › did-finish-load
05:39:12.963 › Badge count set to '0'
05:39:12.985 › Badge count set to '0'
05:39:15.049 › Badge count set to '0'
05:39:18.538 › did-frame-finish-load {} false
05:39:19.618 › GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
[1217:1002/053928.297484:ERROR:window_capturer_x11.cc(145)] The window is no longer valid.
[1217:1002/053928.297532:ERROR:window_capturer_x11.cc(145)] The window is no longer valid.
[1217:1002/053928.304461:ERROR:window_capturer_x11.cc(145)] The window is no longer valid.
[1217:1002/053928.477800:ERROR:window_capturer_x11.cc(145)] The window is no longer valid.
[1217:1002/053928.864640:ERROR:window_capturer_x11.cc(145)] The window is no longer valid.
[1217:1002/053928.868020:ERROR:window_list_utils.cc(142)] Failed to query for child windows for screen 0
[1217:1002/053928.906946:ERROR:window_capturer_x11.cc(145)] The window is no longer valid.
[1217:1002/053929.167592:ERROR:window_capturer_x11.cc(145)] The window is no longer valid.
[1217:1002/053929.554300:ERROR:window_capturer_x11.cc(145)] The window is no longer valid.
[1217:1002/053929.592263:ERROR:window_capturer_x11.cc(145)] The window is no longer valid.
05:39:29.679 › GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
05:39:39.680 › GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'

@IsmaelMartinez
Copy link
Owner

From this https://bugzilla.mozilla.org/show_bug.cgi?id=1151189 I found this page:

https://mozilla.github.io/webrtc-landing/gum_test.html

Can you see what you get in there? Maybe check in chromium to see if you get the same error. If that is the case then we know is something todo with Chromium and/or your graphic card drivers

@Ryushin
Copy link
Author

Ryushin commented Oct 4, 2024

From this https://bugzilla.mozilla.org/show_bug.cgi?id=1151189 I found this page:

https://mozilla.github.io/webrtc-landing/gum_test.html

Can you see what you get in there? Maybe check in chromium to see if you get the same error. If that is the case then we know is something todo with Chromium and/or your graphic card drivers

Launching Chromium and going to the gum_test page shows everything is working that that it is sharing my screen. I can move my mouse and switch windows and I can see the demo site display everything.

Not sure if this will help you, but when I select screen share, then it shows the Entire Screen window, I can see my mouse move in the tiny window. As soon as I click on it, the mouse no longer moves. Pulling up the Share Screen window again, and not clicking on the Entire Screen, but clicking on the X on the right can't close it either and the mouse also stops moving. I can click the screen share again, switch between Screens and Windows fine, but as soon as I click on any item, nothing happens and I can't close the share screen bar. I have to Ctrl+Q to quit it.

If you like, we can do a video session or something else so you can see the behavior.

@fddn
Copy link

fddn commented Oct 9, 2024

On Ubuntu 24.04 after I run this command, it started to work again: systemctl --user restart xdg-desktop-portal-gnome

@Ryushin
Copy link
Author

Ryushin commented Oct 9, 2024

On Ubuntu 24.04 after I run this command, it started to work again: systemctl --user restart xdg-desktop-portal-gnome

Afraid I don't have gnome installed as I use XFCE4. But reading it, it's a front end for xdg-desktop-portal, which according to the "apt-cache show xdg-desktop-portal"

xdg-desktop-portal provides a portal frontend service for Flatpak, Snap,
and possibly other desktop containment/sandboxing frameworks. This service
is made available to the sandboxed application, and provides mediated
D-Bus interfaces for file access, URI opening, printing and similar
desktop integration features.

So that is probably why it now works for you.

Just have no idea why the deb package works for you and not for me. The gum test works for me using Chrome:
https://mozilla.github.io/webrtc-landing/gum_test.html

@samuel-duhaime
Copy link

samuel-duhaime commented Oct 10, 2024

I encountered the same issues when using Teams-for-Linux with Ubuntu 24.04, which I had installed via the App Center using snap. I resolved the issue by following these steps:

  1. Open the custom.conf file using the command: sudo nano /etc/gdm3/custom.conf
  2. Inside the custom.conf file, change the following line to: WaylandEnable=false
  3. Restart gdm3 using the command: sudo systemctl restart gdm3

Source: https://linuxconfig.org/how-to-enable-disable-wayland-on-ubuntu-22-04-desktop

@XZ02R
Copy link

XZ02R commented Oct 11, 2024

Just going to leave some steps I've discovered here in case it helps someone get it working. But since my last comments here there are instances where screen sharing doesn't work. One of the solutions that got it working was to killall -q desktop portals, or in my case killall -q xdg-desktop-portal-wlr and restarting teams-for-linux.

The other solution took a bit of head scratching to find but if you can screen share with the Mozilla screen sharing test and teams-for-linux either freezes the preview or doesn't display anything at all while screen sharing, there's a chance that it's actually working but you're not seeing any indicator. I only discovered this while testing a meeting with calendar -> meet now and inviting myself to the meeting from a laptop while my desktop attempts screen sharing. My main machine showed no indication of the screen being shared, but my laptop was able to see the screen being shared.

@Gabor-B
Copy link

Gabor-B commented Oct 25, 2024

Also confirming the issue, with Ubuntu 24.04 I get a message saying "Your video isn't working" "We couldn't access your camera" when using teams-for-linux snap. (was working until around 2 weeks ago)
When I start a meeting, I get this in the log, seems a H264 codec issue, which might explain the problem:
[458369:1025/085128.384545:ERROR:sdp_offer_answer.cc(424)] A BUNDLE group contains a codec collision for payload_type='101. All codecs must share the same type, encoding name, clock rate and parameters. (INVALID_PARAMETER)

@IsmaelMartinez
Copy link
Owner

Also confirming the issue, with Ubuntu 24.04 I get a message saying "Your video isn't working" "We couldn't access your camera" when using teams-for-linux snap. (was working until around 2 weeks ago) When I start a meeting, I get this in the log, seems a H264 codec issue, which might explain the problem: [458369:1025/085128.384545:ERROR:sdp_offer_answer.cc(424)] A BUNDLE group contains a codec collision for payload_type='101. All codecs must share the same type, encoding name, clock rate and parameters. (INVALID_PARAMETER)

this looks more a graphics card drivers update. Try with the --disableGpu option and see if that does the trick, and check your graphics drivers. The libraries probably updated not long ago.

@Gabor-B
Copy link

Gabor-B commented Oct 25, 2024

Does not fix. Still the same issue
11:49:05.092 › Running under Wayland, switching to PipeWire... 11:49:05.093 › Disabling GPU support.. [470328:1025/115024.801026:ERROR:sdp_offer_answer.cc(424)] A BUNDLE group contains a codec collision for payload_type='101. All codecs must share the same type, encoding name, clock rate and parameters. (INVALID_PARAMETER)
I use a T14 with intel integrated graphics, with the kernel driver - nothing additionally installed.
PS: The mozilla share link test link posted in a comment above works fine.

@IsmaelMartinez
Copy link
Owner

that smells like drivers to me, and on that I don't know if I will be able to help much. can you open another issue so I can look into that in more detail? Fill the template with as many info you got.

@Unix-Mikko
Copy link

Unix-Mikko commented Nov 4, 2024

I encountered the same issues when using Teams-for-Linux with Ubuntu 24.04, which I had installed via the App Center using snap. I resolved the issue by following these steps:

1. Open the custom.conf file using the command: `sudo nano /etc/gdm3/custom.conf`

2. Inside the custom.conf file, change the following line to: `WaylandEnable=false`

3. Restart gdm3 using the command: `sudo systemctl restart gdm3`

Source: https://linuxconfig.org/how-to-enable-disable-wayland-on-ubuntu-22-04-desktop

Your trick above solved 90 % of my screen sharing problem. Impressive & thanks, Samuel-Duhaime (& IsmaelMartinez) !

Explaining:

  • Yes, I had a snap installation of Teams. And before I could not share anything in Teams.

  • After Samuel's advice/commands, the Share-button in Teams really works and enables me to select which window/screen I want to share.

  • The other end (meeting colleague) in Teams sees my shared application/window/screen.

  • B-u-t , I can n-o-t personally see what I am sharing in the Teams window!

Sharing screen empty while sharing - Ubuntu Teams- 2024-11-04 12-49-12

(Screenshot while sharing --> can not see the screen of the window/application in Teams I am sharing)

However, to me this is just a "Feature", since sharing works ok.

  • And pressing once again [Share] at the end of sharing session stops sharing --> works ok.

With deep gratitude,

Mikko

P.S. Previously I was forced to use The Intentionally-Leaky Göögle Chröme in meetings where I needed to share my screen. Not any more :)

@IsmaelMartinez
Copy link
Owner

thanks for sharing! The "see what I am sharing" is a feature that is been open for a bit #1354 . I need to move how the handling of windows work in our app as electron is deprecating the current way, then I will see if/when I can add this.

Copy link

github-actions bot commented Dec 5, 2024

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days.

@github-actions github-actions bot added the Stale label Dec 5, 2024
@Ryushin
Copy link
Author

Ryushin commented Dec 9, 2024

Bump to keep this ticket open.

@github-actions github-actions bot removed the Stale label Dec 9, 2024
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