diff --git a/src/memory/disco.py b/src/memory/disco.py index 67cbf93a..2887a4a9 100755 --- a/src/memory/disco.py +++ b/src/memory/disco.py @@ -350,4 +350,11 @@ class Discovery(object): profile = self.host.memory.getProfileName(profile_key) entity = jid.JID(entity_jid_s) disco_items = yield self.getItems(entity, profile=profile) - defer.returnValue([(item.entity.full(), item.nodeIdentifier or '', item.name or '') for item in disco_items]) + try: + ret = [(item.entity.full(), item.nodeIdentifier or '', item.name or '') for item in disco_items] + except AttributeError: + log.error(u"error while getting items from {entity}, it may result from invalid item(s)".format(entity=entity.full())) + # second try by ignoring empty items + ret = [(item.entity.full(), item.nodeIdentifier or '', item.name or '') for item in disco_items if item.entity] + + defer.returnValue(ret)