Xdg-desktop-portal keeps crashing on Hyprland but works fine on KDE

I am on the latest tumbleweed snapshot and xdg-desktop-portal keeps crashing on Hyprland
with the following error:

░░ A start job for unit UNIT has finished with a failure.
░░
░░ The job identifier is 5038 and the job result is dependency.
Jul 17 21:02:00 localhost.localdomain systemd[2135]: xdg-desktop-portal.service: Job xdg-desktop-portal.service/start failed with result ‘dependency’.
Jul 17 21:02:00 localhost.localdomain systemd[2135]: Current graphical user session is inactive.
Jul 17 21:02:00 localhost.localdomain systemd[2135]: Dependency failed for Portal service.

but if i switch to kde it works fines

Jul 17 21:05:29 localhost.localdomain systemd[2135]: Starting Portal service…
Jul 17 21:05:29 localhost.localdomain systemd[2135]: Started Portal service.

how can i fix this error?

https://bugzilla.opensuse.org/show_bug.cgi?id=1268212

1 Like

@penguinrapper Hyprland has it’s own xdg-desktop-portal?

systemctl status --user xdg-desktop-portal-hyprland

● xdg-desktop-portal-hyprland.service - Portal service (Hyprland implementation)
     Loaded: loaded (/usr/lib/systemd/user/xdg-desktop-portal-hyprland.service; static)
     Active: active (running) since Fri 2026-07-17 13:41:09 CDT; 1min 18s ago
 Invocation: 0cf5a614733d4566b36d4f2f1a9cd01d
   Main PID: 2301 (xdg-desktop-por)
      Tasks: 6 (limit: 18672)
        CPU: 36ms
     CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/xdg-desktop-portal-hyprland.service
             └─2301 /usr/libexec/xdg-desktop-portal-hyprland

Jul 17 13:41:09 host xdg-desktop-portal-hyprland[2301]: [LOG]  | Got interface: zwlr_screencopy_manager_v1 (ver 3)
Jul 17 13:41:09 host xdg-desktop-portal-hyprland[2301]: [LOG] [pipewire] connected
Jul 17 13:41:09 host xdg-desktop-portal-hyprland[2301]: [LOG] [screencopy] init successful
Jul 17 13:41:09 host xdg-desktop-portal-hyprland[2301]: [LOG]  | Got interface: hyprland_toplevel_export_manager_v1 (ver 2)
Jul 17 13:41:09 host xdg-desktop-portal-hyprland[2301]: [LOG]  | Got interface: ext_output_image_capture_source_manager_v1 (ver 1)
Jul 17 13:41:09 host xdg-desktop-portal-hyprland[2301]: [LOG]  | Got interface: ext_foreign_toplevel_image_capture_source_manager_v1 (ver 1)
Jul 17 13:41:09 host xdg-desktop-portal-hyprland[2301]: [LOG]  | Got interface: ext_image_copy_capture_manager_v1 (ver 1)
Jul 17 13:41:09 host xdg-desktop-portal-hyprland[2301]: [LOG]  | Got interface: wp_color_manager_v1 (ver 1)
Jul 17 13:41:09 host xdg-desktop-portal-hyprland[2301]: [LOG]  | Got interface: wp_drm_lease_device_v1 (ver 1)
Jul 17 13:41:09 host xdg-desktop-portal-hyprland[2301]: [LOG]  | Got interface: wp_linux_drm_syncobj_manager_v1 (ver 1)

Likewise on GNOME no issues… But I don’t run multiple desktop environments…

Reconfirmed xdg-desktop-portal does crash on Hyprland, so just copy the service file and edit as required to patch out and all should be fine until an update arrives.

cat /etc/systemd/user/xdg-desktop-portal.service

[Unit]
Description=Portal service
PartOf=graphical-session.target
##Requisite=graphical-session.target
Requires=dbus.service
After=dbus.service
After=graphical-session.target

[Service]
Type=dbus
BusName=org.freedesktop.portal.Desktop
ExecStart=/usr/libexec/xdg-desktop-portal
Slice=session.slice
1 Like

Hyprland has xdg-desktop-portal-hyprland but the flatpak apps uses the own xdg-desktop-portal.

i created the file /etc/systemd/user/xdg-desktop-portal.service

cat /etc/systemd/user/xdg-desktop-portal.service
[Unit]
Description=Portal service
PartOf=graphical-session.target
##Requisite=graphical-session.target
Requires=dbus.service
After=dbus.service
After=graphical-session.target
[Service]
Type=dbus
BusName=org.freedesktop.portal.Desktop
ExecStart=/usr/libexec/xdg-desktop-portal
Slice=session.slice

But xdg-desktop-portal still crashes.

○ xdg-desktop-portal.service - Portal service Loaded: loaded (~.config/systemd/user/xdg-desktop-portal.service](~.config/systemd/user/xdg-desktop-portal.service); static)
Active: inactive (dead)
Jul 18 13:27:57 localhost.localdomain systemd[2138]:
Dependency failed for Portal service.
Jul 18 13:27:57 localhost.localdomain systemd[2138]:
xdg-desktop-portal.service: Job xdg-desktop-portal.service/start failed with result ‘dependency’.

journalctl -xe

The job identifier is 1258 and the job result is dependency.
Jul 18 13:41:05 localhost.localdomain systemd[2138]:
xdg-desktop-portal.service: Job xdg-desktop-portal.service/start failed with result ‘dependency’.
Jul 18 13:41:05 localhost.localdomain systemd[2138]:
Current graphical user session is inactive.
Jul 18 13:41:05 localhost.localdomain systemd[2138]:
Dependency failed for Portal service.

Remove this line ^^ from the service, that was just showing the content…

Mb i formatted it wrong but “cat /etc/systemd/user/xdg-desktop-portal.service” is not in the file

localhost:~> cat /etc/systemd/user/xdg-desktop-portal.service
[Unit]
Description=Portal service
PartOf=graphical-session.target
##Requisite=graphical-session.target
Requires=dbus.service
After=dbus.service
After=graphical-session.target
[Service]
Type=dbus
BusName=org.freedesktop.portal.Desktop
ExecStart=/usr/libexec/xdg-desktop-portal
Slice=session.slice

And if you manually start as your user?
systemctl start --user xdg-desktop-portal and systemctl status --user xdg-desktop-portal

still the same error

localhost:~> systemctl start --user xdg-desktop-portal
A dependency job for xdg-desktop-portal.service failed. See 'journalctl -xe' for details.

Then I’m not really sure, my Hyprland installs are standalone, with that change all is fine…

After I login (I login via a tty) and start for example Ptyxis, I see;

 ps -ef | grep xdg
username    1634    1186  2 09:46 ?        00:00:00 /usr/libexec/xdg-desktop-portal
username    1639    1186  0 09:46 ?        00:00:00 /usr/libexec/xdg-permission-store
username    1644    1186  0 09:46 ?        00:00:00 /usr/libexec/xdg-document-portal
username    1654    1186  2 09:46 ?        00:00:00 /usr/libexec/xdg-desktop-portal-gtk
username    1663    1186  1 09:46 ?        00:00:00 /usr/libexec/xdg-desktop-portal-hyprland

Thanks i fixed it by editing the file ~/.config/systemd/user/xdg-desktop-portal.service to :

localhost:~/.config/systemd/user> cat xdg-desktop-portal.service
[Unit]
Description=Portal service
PartOf=graphical-session.target
#Requisite=graphical-session.target
After=graphical-session.target

[Service]
Type=dbus
BusName=org.freedesktop.portal.Desktop
ExecStart=/usr/libexec/xdg-desktop-portal
Slice=session.slice

And i also deleted the file /etc/systemd/user/xdg-desktop-portal.service

2 Likes

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.