diff --git a/zesje/pregrader.py b/zesje/pregrader.py
index 71b946e05a3c77ae3f85930a9401fd7da64d2d83..2df7de65f76a799a5dc049d49ede42c42ec7ccfe 100644
--- a/zesje/pregrader.py
+++ b/zesje/pregrader.py
@@ -13,7 +13,7 @@
 import cv2
 import numpy as np
 
-from zesje.database import db, Solution, Problem
+from zesje.database import db, Solution, Problem, ProblemWidget
 from zesje.images import guess_dpi, get_box, fix_corner_markers
 
 
@@ -26,20 +26,23 @@ def add_feedback_to_solution(page, page_img, corner_keypoints):
     page_img: image of the page
     barcode: data from the barcode on the page
     """
-    problems_on_page = Problem.query.filter(Problem.widget.page == page).all()
+    widgets = ProblemWidget.filter(ProblemWidget.page == page).all()
+
+    problems_on_page = [widget.problem for widget in widgets]
 
     for problem in problems_on_page:
         for mc_option in problem.mc_options:
-            sol = Solution.query.filter(Solution.problem_id == problem.id).one_or_none()
+            if mc_option:
+                sol = Solution.query.filter(Solution.problem_id == problem.id).one_or_none()
 
-            box = (mc_option.x, mc_option.y)
+                box = (mc_option.x, mc_option.y)
 
-            corner_keypoints = fix_corner_markers(corner_keypoints, page_img.shape)
+                corner_keypoints = fix_corner_markers(corner_keypoints, page_img.shape)
 
-            # check if box is filled
-            if box_is_filled(box, page_img, corner_keypoints):
-                sol.feedback.append(mc_option.feedback)
-                db.session.commit()
+                # check if box is filled
+                if box_is_filled(box, page_img, corner_keypoints):
+                    sol.feedback.append(mc_option.feedback)
+                    db.session.commit()
 
 
 def box_is_filled(box, page_img, corner_keypoints, marker_margin=72/2.54, threshold=225, cut_padding=0.1, box_size=11):
diff --git a/zesje/scans.py b/zesje/scans.py
index e4f93a57e287f17962323375141d6c1da58d6975..f32c0ff1debff0434fcf06fc4244ee4b262527be 100644
--- a/zesje/scans.py
+++ b/zesje/scans.py
@@ -77,22 +77,22 @@ def _process_pdf(scan_id, app_config):
 
     total = PyPDF2.PdfFileReader(open(pdf_path, "rb")).getNumPages()
     failures = []
-    try:
-        for image, page in extract_images(pdf_path):
-            report_progress(f'Processing page {page} / {total}')
-            try:
-                success, description = process_page(
-                    image, exam_config, output_directory
-                )
-                if not success:
-                    print(description)
-                    failures.append(page)
-            except Exception as e:
-                report_error(f'Error processing page {page}: {e}')
-                return
-    except Exception as e:
-        report_error(f"Failed to read pdf: {e}")
-        raise
+    # try:
+    for image, page in extract_images(pdf_path):
+        report_progress(f'Processing page {page} / {total}')
+        # try:
+        success, description = process_page(
+            image, exam_config, output_directory
+        )
+        if not success:
+            print(description)
+            failures.append(page)
+    # except Exception as e:
+        #     report_error(f'Error processing page {e.__cause__}')
+            return
+    # except Exception as e:
+    #     report_error(f"Failed to read pdf: {e}")
+    #     raise
 
     if failures:
         processed = total - len(failures)