AFAICT transactions can exit with PK_EXIT_ENUM_REPAIR_REQUIRED which is to indicate that the system is in a bad state and needs repair (RepairSystem transaction).
The notifier (and probably also the main application) should handle this state and throw up notifications about this with a button to trigger a repair attempt.
Repair required can for example happen when packages failed to install and now the system is in a half-working state with half the packages being installed and the others blocked on a failed dependency. etc.
It's entirely unclear how well this state is communicated from the PK backends, but supposedly if they are not communicating this properly they need fixing as well.
I don't really see to get a PkExitEnum from a PkTransaction.
For now, I realised that we weren't offering to repair the system when an offline update failed. Will do so now.
Git commit eb1e950d01578e82844dfbbe063ad176c7a08e43 by Aleix Pol.
Committed on 09/10/2019 at 14:01.
Pushed by apol into branch 'master'.
pk: offer to repair the system when an offline update failed
M +1 -1 libdiscover/backends/PackageKitBackend/PackageKitNotifier.cpp