diff --git a/aleksis/apps/alsijil/tasks.py b/aleksis/apps/alsijil/tasks.py
index 47fd9074c4ad6fd81383089cf2563d2691ee3ba4..7216716a72d56879a00aa3e09cda5b8f77314916 100644
--- a/aleksis/apps/alsijil/tasks.py
+++ b/aleksis/apps/alsijil/tasks.py
@@ -17,6 +17,10 @@ from .models import Documentation, ExtraMark, NewPersonalNote, ParticipationStat
 from .util.statistics import StatisticsBuilder
 
 
+class PDFGenerationError(Exception):
+    """Error in PDF generation."""
+
+
 @recorded_task
 def generate_groups_register_printout(
     groups: list[int],
@@ -134,8 +138,8 @@ def generate_groups_register_printout(
     with allow_join_result():
         result.wait()
         file_object.refresh_from_db()
-        if not result.status == SUCCESS and file_object.file:
-            raise Exception(_("PDF generation failed"))
+        if not (result.status == SUCCESS and file_object.file):
+            raise PDFGenerationError(_("PDF generation failed"))
 
     recorder.set_progress(5 + len(groups), _number_of_steps)
 
@@ -151,9 +155,7 @@ def generate_person_register_printout(
 
     context = {}
 
-    _number_of_steps = 4
-
-    recorder.set_progress(1, _number_of_steps, _("Loading data ..."))
+    recorder.set_progress(1, 4, _("Loading data ..."))
 
     person = Person.objects.get(pk=person)
     school_term = SchoolTerm.objects.get(pk=school_term)
@@ -184,7 +186,7 @@ def generate_person_register_printout(
     )
     context["extra_marks"] = ExtraMark.objects.all()
 
-    recorder.set_progress(2, _number_of_steps, _("Generating template ..."))
+    recorder.set_progress(2, 4, _("Generating template ..."))
 
     file_object, result = generate_pdf_from_template(
         "alsijil/print/register_for_person.html",
@@ -192,12 +194,12 @@ def generate_person_register_printout(
         file_object=PDFFile.objects.get(pk=file_object),
     )
 
-    recorder.set_progress(3, _number_of_steps, _("Generating PDF ..."))
+    recorder.set_progress(3, 4, _("Generating PDF ..."))
 
     with allow_join_result():
         result.wait()
         file_object.refresh_from_db()
-        if not result.status == SUCCESS and file_object.file:
-            raise Exception(_("PDF generation failed"))
+        if not (result.status == SUCCESS and file_object.file):
+            raise PDFGenerationError(_("PDF generation failed"))
 
-    recorder.set_progress(4, _number_of_steps)
+    recorder.set_progress(4, 4)