diff --git a/src/documents/serialisers.py b/src/documents/serialisers.py
index a486fe241..5f3b310c2 100644
--- a/src/documents/serialisers.py
+++ b/src/documents/serialisers.py
@@ -1136,9 +1136,8 @@ class SavedViewSerializer(OwnedObjectSerializer):
                 ):  # i.e. check for 'custom_field_' prefix
                     field_id = int(re.search(r"\d+", field)[0])
                     if not CustomField.objects.filter(id=field_id).exists():
-                        raise serializers.ValidationError(
-                            f"Invalid field: {field}",
-                        )
+                        # In case the field was deleted, just remove from the list
+                        attrs["display_fields"].remove(field)
                 elif field not in SavedView.DisplayFields.values:
                     raise serializers.ValidationError(
                         f"Invalid field: {field}",
diff --git a/src/documents/tests/test_api_documents.py b/src/documents/tests/test_api_documents.py
index 28261b392..40c30f5bb 100644
--- a/src/documents/tests/test_api_documents.py
+++ b/src/documents/tests/test_api_documents.py
@@ -1911,7 +1911,7 @@ class TestDocumentApi(DirectoriesMixin, DocumentConsumeDelayMixin, APITestCase):
             ],
         )
 
-        # Custom field not found
+        # Custom field not found, removed from list
         response = self.client.patch(
             f"/api/saved_views/{v1.id}/",
             {
@@ -1923,7 +1923,9 @@ class TestDocumentApi(DirectoriesMixin, DocumentConsumeDelayMixin, APITestCase):
             },
             format="json",
         )
-        self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
+        self.assertEqual(response.status_code, status.HTTP_200_OK)
+        v1.refresh_from_db()
+        self.assertNotIn(SavedView.DisplayFields.CUSTOM_FIELD % 99, v1.display_fields)
 
     def test_get_logs(self):
         log_data = "test\ntest2\n"