Desktop, X11 & Wayland

A desktop portal cannot activate its backend

A missing file picker or screen-sharing dialog can reflect wrong portal selection. Inspect backend support and the desktop session environment.

On this page
  1. Symptoms & scope
  2. Possible causes
  3. Diagnose safely
  4. Evidence-guided next steps
  5. References & review
  6. Related problems

Symptoms & scope

  • A sandboxed app hangs while opening a file chooser.
  • Screen sharing offers no selection dialog or a backend activation error.

Relevant environment

Desktop using xdg-desktop-portal; backend capabilities vary, and file chooser support need not come from the screen-capture backend.

Recognizable messages (synthetic examples)
xdg-desktop-portal[510]: Failed to create file chooser proxy: Error calling StartServiceByName for org.freedesktop.impl.portal.desktop.gnome: Timeout was reached

Check that specific backend and session; this line does not justify enlarging filesystem sandbox permissions.

xdg-desktop-portal[510]: Failed to create screenshot proxy: Error calling StartServiceByName for org.freedesktop.impl.portal.desktop.wlr: Timeout was reached

Investigate interface support, activation and compositor environment; do not infer a GPU fault from this alone.

Possible causes

These are possible explanations, not a confirmed diagnosis. Several independent faults can coexist.

  • Desktop-specific portal configuration may select an unavailable backend.
  • The backend process may inherit a stale desktop or display environment.

Diagnose safely

Run one command at a time in the relevant session. Read the explanation first. Uppercase placeholders need your own values; tools and privileges vary by distribution. These commands are displayed here and never executed by the website.

Check 1

Reads service status and recent logs in the affected desktop account; applies to systemd user sessions.

systemctl --user status xdg-desktop-portal.service --no-pager

Interpret the result: Inspect the named org.freedesktop.impl.portal backend and failing interface. A running frontend does not guarantee its backend is available.

Check 2

Reads user overrides and installed portal definitions; adapt the user path if XDG_CONFIG_HOME is customized.

rg -n "preferred|default=|FileChooser=|ScreenCast=|Interfaces=|UseIn=" "$HOME/.config/xdg-desktop-portal" /usr/share/xdg-desktop-portal

Interpret the result: Check precedence and which backend actually implements the needed interface. Merely installing several backends does not select the right one.

Evidence-guided next steps

Select installed backends for the needed interfaces

If configuration selects an absent or unsupported backend, back up the user portals.conf and use installed desktop-compatible providers for FileChooser and ScreenCast as appropriate. Install the distribution’s matching backend if needed, then restart the portal services after closing active portal requests.

Precautions: A wlroots screen-capture backend may not implement a file chooser. Do not remove every other desktop backend blindly.

Recovery / rollback: Restore the saved user portals.conf or remove only the new override, then restart the same portal services.

Did this solution help you?

Share this solution#

Repair the session environment supplied to portals

If the backend is installed but targets a different desktop or display, correct the compositor’s documented session-start environment integration for DISPLAY, WAYLAND_DISPLAY and XDG_CURRENT_DESKTOP. Save its configuration and relogin to restart affected services with the intended values.

Precautions: Do not import all environment variables indiscriminately; multiple simultaneous desktops for one account can share a user manager.

Recovery / rollback: Restore the saved session-start integration and relogin; end the conflicting temporary desktop if it changed shared values.

Did this solution help you?

Share this solution#

References & review

This guide was prepared from primary project or distribution sources and reviewed on the date shown. This is an editorial source check, not evidence that a fix was reproduced on your hardware. Diagnostic log examples are synthetic fixtures. Version-dependent details must be checked against your installed release.