             return self.groups
         } else {
             return self.groups?.filter({ (groupId) -> Bool in
-                return self.groupDataManager.fetchGroup(with: groupId).totalCount > 0
+                guard let group = self.groupDataManager.fetchGroup(with: groupId) else {
+                    assertionFailure("Expect group")
+                    return false
+                }
+                return group.totalCount > 0
             }) ?? []
         }
     }

        
        if let defaultAssetGroup = self.defaultAssetGroup {
            for groupId in groups {
                let group = self.groupDataManager.fetchGroup(with: groupId)
                if defaultAssetGroup == group.originalCollection.assetCollectionSubtype {
                    return groupId
                }

                return UITableViewCell()
        }

        guard let assetGroup = self.groupDataManager.fetchGroup(with: groups[indexPath.row]) else {
            assertionFailure("Expect group")
            return UITableViewCell()
        }
        cell.groupNameLabel.text = assetGroup.groupName

        let tag = indexPath.row + 1
