diff --git a/api_koreader/models.py b/api_koreader/models.py
index e51a94ca60bac5651569b56688a00ee4fcaf5344..5c7dabbb910da0376e79843252ecf4cd16815b74 100644
--- a/api_koreader/models.py
+++ b/api_koreader/models.py
@@ -5,7 +5,6 @@ from django.db import models
 from django.db.models import QuerySet
 from django.db.models.signals import post_save
 from django.dispatch import receiver
-from django.utils import timezone
 
 from accounts.models import User
 from reader.models import Book, UserBook
@@ -48,7 +47,7 @@ def post_save_document(sender, instance: SyncDocumentEntry, **kwargs):
 @receiver(post_save, sender=UserBook)
 def post_save_userbook(sender, instance: UserBook, **kwargs):
     # Stop recursion
-    if instance.last_progress_device.startswith("KoReader"):
+    if instance.last_progress_device is not None and instance.last_progress_device.startswith("KoReader"):
         return
     # Find the corresponding SyncDocumentEntry
     sync_doc_q: QuerySet[SyncDocumentEntry] = SyncDocumentEntry.objects.filter(user=instance.user, key__iexact=instance.book.partial_md5)