Package: xdg-desktop-portal-gnome
Version: 50.0-1
Severity: normal


Dear Maintainer,

it seems there is an issue with the file picker desktop portal when the current_folder (the location the window is opening at) is a directory managed by a cloud sync client (in my case nextcloud v33.0.2-1, but I can't say for sure if other clients are also affected). When trying to open a file from an application relying on xdg-desktop-portal for providing the file picker, e.g. Firefox, it sometimes takes quite a while before the content of the current directory is being displayed. It doesn't happen always, but regularly. During that time both the portal and the application calling it are frozen, triggering "application doesn't respond" messages, though selecting "kill" in there
doesn't do anything, it seems something's really getting stuck.


 From logs gathered with busctl --user monitor org.freedesktop.portal.Desktop > portal_dbus.log there are these entries showing that misbehavior:

the entry where it tries to open the directory:



Type=method_call  Endian=l  Flags=0  Version=1 Cookie=204 Timestamp="Tue 2026-06-09 10:45:19.695386 UTC"   Sender=:1.1851  Destination=:1.1857 Path=/org/freedesktop/portal/desktop Interface=org.freedesktop.impl.portal.FileChooser  Member=OpenFile
  UniqueName=:1.1851
  MESSAGE "osssa{sv}" {
          OBJECT_PATH "/org/freedesktop/portal/desktop/request/1_141/firefox_file_picker_16_64073261";
          STRING "firefox-beta";
          STRING "wayland:R@b4;x] UTl6&D/"Q:vYMt*M)~q74BcE";
          STRING <name of the browser window>;
          ARRAY "{sv}" {
                  DICT_ENTRY "sv" {
                          STRING "modal";
                          VARIANT "b" {
                                  BOOLEAN true;
                          };
                  };
                  DICT_ENTRY "sv" {
                          STRING "multiple";
                          VARIANT "b" {
                                  BOOLEAN true;
                          };
                  };
                  DICT_ENTRY "sv" {
                          STRING "directory";
                          VARIANT "b" {
                                  BOOLEAN false;
                          };
                  };
                  DICT_ENTRY "sv" {
                          STRING "filters";
                          VARIANT "a(sa(us))" {
                                  ARRAY "(sa(us))" {
                                          STRUCT "sa(us)" {
                                                  STRING "All Files";
                                                  ARRAY "(us)" {
                                                          STRUCT "us" {
UINT32 0;
STRING "*";
                                                          };
                                                  };
                                          };
                                  };
                          };
                  };
                  DICT_ENTRY "sv" {
                          STRING "current_filter";
                          VARIANT "(sa(us))" {
                                  STRUCT "sa(us)" {
                                          STRING "All Files";
                                          ARRAY "(us)" {
                                                  STRUCT "us" {
                                                          UINT32 0;
                                                          STRING "*";
                                                  };
                                          };
                                  };
                          };
                  };
                  DICT_ENTRY "sv" {
                          STRING "current_folder";
                          VARIANT "ay" {
                                  ARRAY "y" {
                                          BYTE 47;
                                          BYTE 104;
                                          BYTE 111;
                                          BYTE 109;
                                          BYTE 101;
                                          BYTE 47;
                                          BYTE 114;
                                          BYTE 105;
                                          BYTE 99;
                                          BYTE 104;
                                          BYTE 97;
                                          BYTE 114;
                                          BYTE 100;
                                          BYTE 47;
                                          BYTE 115;
                                          BYTE 99;
                                          BYTE 105;
                                          BYTE 101;
                                          BYTE 98;
                                          BYTE 111;
                                          BYTE 47;
                                          BYTE 77;
                                          BYTE 97;
                                          BYTE 115;
                                          BYTE 116;
                                          BYTE 101;
                                          BYTE 114;
                                          BYTE 97;
                                          BYTE 114;
                                          BYTE 98;
                                          BYTE 101;
                                          BYTE 105;
                                          BYTE 116;
                                          BYTE 47;
                                          BYTE 65;
                                          BYTE 98;
                                          BYTE 98;
                                          BYTE 105;
                                          BYTE 108;
                                          BYTE 100;
                                          BYTE 117;
                                          BYTE 110;
                                          BYTE 103;
                                          BYTE 101;
                                          BYTE 110;
                                          BYTE 47;
                                          BYTE 82;
                                          BYTE 101;
                                          BYTE 115;
                                          BYTE 117;
                                          BYTE 108;
                                          BYTE 116;
                                          BYTE 115;
                                          BYTE 47;
                                          BYTE 109;
                                          BYTE 97;
                                          BYTE 105;
                                          BYTE 110;
                                          BYTE 45;
                                          BYTE 101;
                                          BYTE 120;
                                          BYTE 112;
                                          BYTE 101;
                                          BYTE 114;
                                          BYTE 105;
                                          BYTE 109;
                                          BYTE 101;
                                          BYTE 110;
                                          BYTE 116;
                                          BYTE 115;
                                          BYTE 47;
                                          BYTE 78;
                                          BYTE 105;
                                          BYTE 0;
                                  };
                          };
                  };
          };
  };


and the return message 28 seconds later:


Type=method_return  Endian=l  Flags=1  Version=1 Cookie=205 ReplyCookie=2532  Timestamp="Tue 2026-06-09 10:45:19.695461 UTC"
  Sender=:1.1851  Destination=:1.141
  UniqueName=:1.1851
  MESSAGE "o" {
          OBJECT_PATH "/org/freedesktop/portal/desktop/request/1_141/firefox_file_picker_16_64073261";
  };


There are no entries inbetween. Only after this the response is sent to
Firefox:


Type=signal  Endian=l  Flags=1  Version=1 Cookie=238 Timestamp="Tue 2026-06-09 10:45:47.899116 UTC"   Sender=:1.1851  Destination=:1.141 Path=/org/freedesktop/portal/desktop/request/1_141/firefox_file_picker_16_64073261 Interface=org.freedesktop.portal.Request  Member=Response
  UniqueName=:1.1851
  MESSAGE "ua{sv}" {
          UINT32 1;
          ARRAY "{sv}" {
                  DICT_ENTRY "sv" {
                          STRING "uris";
                          VARIANT "as" {
                                  ARRAY "s" {
                                  };
                          };
                  };
          };
  };



As I can't tell if this is a bug that needs to be fixed in xdg-desktop-portal-gnome or in the nextcloud client, kindly let me know if I should file this report again against a different package.


Best regards

Richard


-- System Information:
Debian Release: forky/sid
  APT prefers stable-security
  APT policy: (500, 'stable-security'), (500, 'testing'), (50, 'experimental'), (50, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 7.0.10+deb14-amd64 (SMP w/16 CPU threads; PREEMPT)
Kernel taint flags: TAINT_USER, TAINT_WARN
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages xdg-desktop-portal-gnome depends on:
ii  dbus-user-session                            1.16.2-5
ii  dbus-x11                                     1.16.2-5
ii  dconf-gsettings-backend [gsettings-backend]  0.49.0-4+b1
ii  gsettings-desktop-schemas                    50.1-2
ii  libadwaita-1-0                               1.9.0-1
ii  libc6                                        2.42-16
ii  libcairo2                                    1.18.4-3+b1
ii  libfontconfig1                               2.17.1-5
ii  libgdk-pixbuf-2.0-0                          2.44.6+dfsg-2
ii  libglib2.0-0t64                              2.88.1-2
ii  libgnome-bg-4-2t64                           44.5-1
ii  libgnome-desktop-4-2t64                      44.5-1
ii  libgraphene-1.0-0                            1.10.8-5+b2
ii  libgtk-4-1                                   4.22.4+ds-1
ii  libwayland-client0                           1.24.0-2+b2
ii  libx11-6                                     2:1.8.13-1
ii  nautilus                                     50.1-2
ii  xdg-desktop-portal                           1.22.0+ds-1
ii  xdg-desktop-portal-gtk                       1.15.3-2

Versions of packages xdg-desktop-portal-gnome recommends:
ii  gnome-settings-daemon  50.1-1
ii  gnome-shell            50.2-3
ii  papers                 49.3-3

Versions of packages xdg-desktop-portal-gnome suggests:
ii  accountsservice  23.13.9-8+b2

-- no debconf information

Reply via email to