diff --git a/src/calibre/devices/kobo/books.py b/src/calibre/devices/kobo/books.py index bcf6353e83..fc18a61fc8 100644 --- a/src/calibre/devices/kobo/books.py +++ b/src/calibre/devices/kobo/books.py @@ -199,6 +199,11 @@ class KTCollectionsBookList(CollectionsBookList): ('series' in collection_attributes and book.get('series', None) == category): is_series = True + + # The category should not be None, but, it has happened. + if not category: + continue + cat_name = category.strip(' ,') if cat_name not in collections: diff --git a/src/calibre/devices/kobo/driver.py b/src/calibre/devices/kobo/driver.py index 0aa946c848..2932c657b0 100644 --- a/src/calibre/devices/kobo/driver.py +++ b/src/calibre/devices/kobo/driver.py @@ -1537,7 +1537,11 @@ class KOBOTOUCH(KOBO): return bookshelves cursor = connection.cursor() - query = "select ShelfName from ShelfContent where ContentId = ? and _IsDeleted = 'false'" + query = "select ShelfName " \ + "from ShelfContent " \ + "where ContentId = ? " \ + "and _IsDeleted = 'false' " \ + "and ShelfName is not null" # This should never be nulll, but it is protection against an error cause by a sync to the Kobo server values = (ContentID, ) cursor.execute(query, values) for i, row in enumerate(cursor):