diff --git a/gajim/common/storage/archive.py b/gajim/common/storage/archive.py index dd9c432eb3f24b7f237c306bc8aa71057c81c3b2..589fb5bc512c29c8a35c09c38538ad0cdfc58fb3 100644 --- a/gajim/common/storage/archive.py +++ b/gajim/common/storage/archive.py @@ -284,8 +284,9 @@ def _get_jid_ids_from_db(self) -> None: self._jid_ids[row.jid] = row self._jid_ids_reversed[row.jid_id] = row - def get_jid_from_id(self, jid_id: int) -> JidsTableRow: - return self._jid_ids_reversed[jid_id] + def get_jid_from_id(self, jid_id: int) -> Optional[JidsTableRow]: + # Use get as a fail-safe for cases where the JID ID table is incomplete + return self._jid_ids_reversed.get(jid_id) def get_jids_in_db(self) -> KeysView[JID]: return self._jid_ids.keys() diff --git a/gajim/gtk/search_view.py b/gajim/gtk/search_view.py index 08ddbc4e541036dfd822b3a138b86783eb741757..b3ecc3e3e801157d8e6f5dc244351e6b9b00db9f 100644 --- a/gajim/gtk/search_view.py +++ b/gajim/gtk/search_view.py @@ -191,6 +191,8 @@ def _add_results(self) -> None: for msg in itertools.islice(self._results_iterator, 25): if self._scope == 'everywhere': archive_jid = app.storage.archive.get_jid_from_id(msg.jid_id) + if archive_jid is None: + continue result_row = ResultRow( msg, accounts[msg.account_id],