diff --git a/common/flatpak-installation.c b/common/flatpak-installation.c index 2aee2fd6..7d75c413 100644 --- a/common/flatpak-installation.c +++ b/common/flatpak-installation.c @@ -3122,14 +3122,25 @@ flatpak_installation_list_unused_refs_with_options (FlatpakInstallation *self, { g_autoptr(GError) local_error = NULL; FlatpakInstalledRef *ref = NULL; - g_autoptr(FlatpakDecomposed) decomposed = flatpak_decomposed_new_from_ref (*iter, &local_error); - if (decomposed) - ref = get_ref (dir, decomposed, cancellable, &local_error); + g_autoptr(FlatpakDecomposed) decomposed = NULL; - if (ref != NULL) - g_ptr_array_add (refs, ref); - else - g_warning ("Unexpected failure getting ref for %s: %s", flatpak_decomposed_get_ref (decomposed), local_error->message); + decomposed = flatpak_decomposed_new_from_ref (*iter, &local_error); + if (decomposed == NULL) + { + g_warning ("Unexpected failure parsing ref %s: %s", *iter, local_error->message); + continue; + } + + ref = get_ref (dir, decomposed, cancellable, &local_error); + if (ref == NULL) + { + g_warning ("Unexpected failure getting ref for %s: %s", + flatpak_decomposed_get_ref (decomposed), + local_error->message); + continue; + } + + g_ptr_array_add (refs, ref); } return g_steal_pointer (&refs);