diff --git a/omemo/omemo/state.py b/omemo/omemo/state.py index 9493b219340d88c69c1cf0245ebeda17f3c90c43..75dbf41c1279dc1e00ce8fa3deba1e343cecc4f4 100644 --- a/omemo/omemo/state.py +++ b/omemo/omemo/state.py @@ -308,6 +308,8 @@ class OmemoState: continue if jid_to in encrypted_jids: # We already encrypted to this JID continue + if jid_to not in self.session_ciphers: + continue for rid, cipher in self.session_ciphers[jid_to].items(): try: if self.isTrusted(jid_to, rid) == TRUSTED: @@ -368,8 +370,12 @@ class OmemoState: jid_to = self.plugin.groupchat[room][nick] if jid_to == self.own_jid: continue - for device in self.device_ids[jid_to]: - devicelist.append((jid_to, device)) + try: + for device in self.device_ids[jid_to]: + devicelist.append((jid_to, device)) + except KeyError: + log.warning('no device ids found for %s', jid_to) + continue return devicelist if jid == self.own_jid: