diff --git a/example/tests/unit/test_default_drf_serializers.py b/example/tests/unit/test_default_drf_serializers.py
index 87231896..c078dc06 100644
--- a/example/tests/unit/test_default_drf_serializers.py
+++ b/example/tests/unit/test_default_drf_serializers.py
@@ -104,6 +104,19 @@ def test_blog_create(client):
     assert resp.json() == expected
 
 
+@pytest.mark.django_db
+def test_rest_action_request(client):
+    url = reverse("drf-entry-blog-list") + "/actions/custom_response"
+    name = "Dummy Name"
+    request_data = {
+        "data": {"attributes": {"name": name}, "type": "blogs"},
+    }
+
+    resp = client.post(url, request_data)
+
+    assert resp.status_code == 400
+
+
 @pytest.mark.django_db
 def test_get_object_gives_correct_blog(client, blog, entry):
     url = reverse("drf-entry-blog-detail", kwargs={"entry_pk": entry.id})
diff --git a/example/views.py b/example/views.py
index da171698..690e38b6 100644
--- a/example/views.py
+++ b/example/views.py
@@ -1,9 +1,11 @@
+import logging
 import rest_framework.exceptions as exceptions
 import rest_framework.parsers
 import rest_framework.renderers
 from django_filters import rest_framework as filters
 from rest_framework.filters import SearchFilter
-
+from rest_framework.response import Response
+from rest_framework.decorators import action
 import rest_framework_json_api.metadata
 import rest_framework_json_api.parsers
 import rest_framework_json_api.renderers
@@ -74,6 +76,18 @@ def get_object(self):
 
         return super().get_object()
 
+    @action(url_path="actions/custom_response", detail=False, methods=["post"])
+    def custom_response(self, request):
+        data = request.data
+        serializer = self.get_serializer(data=data)
+        serializer.is_valid(raise_exception=True)
+        self.perform_create(serializer)
+        try:
+            test = 1/0
+        except Exception:
+            return Response(status=400)
+
+        return Response(status=201)
 
 class JsonApiViewSet(ModelViewSet):
     """
@@ -257,7 +271,6 @@ def get_queryset(self, *args, **kwargs):
 
         return queryset
 
-
 class CompanyViewset(ModelViewSet):
     queryset = Company.objects.all()
     serializer_class = CompanySerializer
@@ -276,7 +289,6 @@ class ProjectTypeViewset(ModelViewSet):
 class EntryRelationshipView(RelationshipView):
     queryset = Entry.objects.all()
 
-
 class BlogRelationshipView(RelationshipView):
     queryset = Blog.objects.all()
 
diff --git a/rest_framework_json_api/utils.py b/rest_framework_json_api/utils.py
index e12080ac..66b46435 100644
--- a/rest_framework_json_api/utils.py
+++ b/rest_framework_json_api/utils.py
@@ -474,6 +474,6 @@ def format_error_object(message, pointer, response):
 
 
 def format_errors(data):
-    if len(data) > 1 and isinstance(data, list):
+    if isinstance(data, list) and len(data) > 1:
         data.sort(key=lambda x: x.get("source", {}).get("pointer", ""))
     return {"errors": data}