@gnome-maintainers the complete backend code should be reviewed. There are several other locations where you retrieve some previously stored package_id (here nome-color-manager-lang;3.24.0-2.3;noarch;repo-oss in backend_update_packages_thread) and don't handle the case that the package_id is no longer valid (see comment#7). Your code should basically behave like this: > sat::Solvable solvable = zypp_get_package_by_id( package_id ); > if ( ! solvable ) > { > // Previously stored package_id no longer matches any solvable. > // May happen e.g. if repos meanwhile changed (add/remove/refresh) > } > else > { > // found matching solvable > } Construncting pointer types like a ui::Selectable::Ptr from a sat::Solvable::noSolvable will result in a nullptr and leads to crashes like the above.