How does canceling downloads/installations currently work in Flatpak? Any plans for transactional installs?

Hi :waving_hand: everyone,
I’ve been trying to understand how cancellation works for Flatpak operations (especially installs via app stores like GNOME Software, Discover, Warehouse, etc.), and I’m a bit unclear on the current behavior and future direction.

From what I can tell:

  • If you cancel during the download phase, things are usually fine.

  • But if you cancel during installation, you may be left with partially installed dependencies or updated runtimes.

  • Frontends don’t seem to have a reliable way to safely “undo” an in-progress install.

This made me wonder:

  1. How does cancellation actually work today at the Flatpak level?
    Is there any official guidance for frontends on what they can safely do when a user hits “Cancel”?

  2. Is there any plan or ongoing discussion around transactional installs?
    By that I mean an approach where:

    • An install/update is treated as a transaction

    • Canceling mid-operation can safely roll back to the previous state

    • Frontends could confidently offer cancel/pause/undo without risking inconsistent state

I’m not asking for a feature request here so much as trying to understand:

  • The current design philosophy

  • Whether transactional behavior is something the project wants long-term

  • And if there are existing issues, roadmaps, or design discussions around this topic

Thanks in advance — and thanks for all the work on Flatpak and Flathub!

It would be helpful to explain, why you think, that cancelling while installing leaves traces.

How do you reproduce that? What are the symptoms, logs, etc.

To clarify, I’m not saying Flatpak is definitely leaving broken state after canceling.

This came up from a frontend issue (see the exact comment here: Cancel mid-installation button · Issue #228 · pop-os/cosmic-store · GitHub ) where the install cancel feature was discussed and someone mentioned it might be tricky because of how deps are downloaded/installed.

So my real question is just about how Flatpak itself currently handles a canceled install:

  • Are there any internal guarantees if an install is interrupted?
  • Is it safe for frontends to expose cancel during install?
  • Or is there any plan or discussion around transactional install semantics (where cancel can fully rollback changes)?

I’m just trying to understand the design, not reporting a specific bug.

Thanks!

In that case, you should open this issue to the Flatpak developers: Flatpak · GitHub

They are very similar people, but Flathub is a website that provides Flatpaks.

Thanks. i will check there.

This topic was automatically closed after 2 days. New replies are no longer allowed.