Bug#1139546: xdg-desktop-portal-gnome: timeout when current_folder is set to a directory managed by a cloud sync client

Richard rrosner5 at gmail.com
Tue Jun 9 12:22:49 BST 2026


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 at 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



More information about the pkg-gnome-maintainers mailing list