diff --git a/reader/views.py b/reader/views.py
index 0307ac852a729753247759d4d7cc3829396ebbb7..808c3f3c8766f720da9f0df4625f0bac975cf210 100644
--- a/reader/views.py
+++ b/reader/views.py
@@ -158,10 +158,12 @@ def read_book(request, book_id):
         case "epub":
             reader_template = "reader/book_read/epub_viewer.html"
             # Try to parse CFI
-            rgx = re.compile(r"epubcfi\((.*)\)")
-            m = rgx.match(userbook.last_progress_cfi)
-            if m:
-                cfi_ref = userbook.last_progress_cfi
+            if userbook.last_progress_cfi is not None:
+                rgx = re.compile(r"epubcfi\((.*)\)")
+                m = rgx.match(userbook.last_progress_cfi)
+                if m:
+                    cfi_ref = userbook.last_progress_cfi
+
         case _:
             reader_template = "reader/book_read/invalid_filetype.html"
     return render(request, reader_template, {