diff --git a/radicale/storage.py b/radicale/storage.py index a67fbf9..d82c736 100644 --- a/radicale/storage.py +++ b/radicale/storage.py @@ -718,7 +718,18 @@ class Collection(BaseCollection): break return collection.serialize() elif self.get_meta("tag") == "VADDRESSBOOK": - return "".join([item.serialize() for item in items]) + self.logger.debug("Try to serialize VADDRESSBOOK") + items_ok = [] + result = "" + for item in items: + try: + item.serialize() + items_ok.append(item) + except: + self.logger.exception("VCARD broken (skip): %s", item) + result = "".join([item.serialize() for item in items_ok]) + self.logger.debug("Try to return VADDRESSBOOK") + return result return "" _lock = threading.Lock()