+ match message.type_ {
+ xmpp_parsers::message::MessageType::Error => {
+ if Self::compare_jid_to_full_jid(&message.to, &self.account.jid) {
+ if let Some(room) = self
+ .account
+ .chatrooms
+ .values()
+ .find(|j| message.from.as_ref().is_some_and(|ref p| p == j))
+ {
+ let mut errors = Vec::new();
+ for payload in message.payloads.iter() {
+ if let Some(_error) = payload.clone().try_into().ok()
+ as Option<xmpp_parsers::stanza_error::StanzaError>
+ {
+ errors.push(_error);
+ }
+ }
+ error!(
+ "Got error from MUC {}: errors {:?}. Try again later: {:?}",
+ room, errors, message
+ );
+ self.state.data.error_mucs.insert(room.clone());
+ return true;
+ }
+ }
+ error!("Incoming message stanza: {:?}", message);
+ }
+ _ => warn!("Incoming message stanza: {:?}", message),
+ }