diff --git a/backend/metagenedb/api/catalog/views/gene.py b/backend/metagenedb/api/catalog/views/gene.py
index a618a36b7cf1f5b474ddae14cf81f8eb43fc011a..475791668de4dfc150c921bea3cf3d33f73729c5 100644
--- a/backend/metagenedb/api/catalog/views/gene.py
+++ b/backend/metagenedb/api/catalog/views/gene.py
@@ -1,6 +1,7 @@
 import pandas as pd
 from rest_framework.viewsets import GenericViewSet
 from rest_framework import mixins
+from rest_framework import status
 from rest_framework.decorators import action
 from rest_framework.response import Response
 
@@ -29,7 +30,7 @@ class GeneViewSet(mixins.ListModelMixin,
         labels = []
         for rg in all_ranges:
             labels.append(f"{rg[0]}-{rg[1]-1}")
-            data.append(df[get_mask(df, rg, window_col)].count()['gene_length'])
+            data.append(df[get_mask(df, rg, window_col)].count()[window_col])
         return {
             'counts': data,
             'labels': labels
@@ -40,6 +41,11 @@ class GeneViewSet(mixins.ListModelMixin,
         if 'window_size' in request.query_params:
             window_size = int(request.query_params.get('window_size'))
         df = pd.DataFrame(list(self.queryset.values(self.GENE_LENGTH_COL)))
+        if df.empty:
+            return Response(
+                {'results': {}},
+                status=status.HTTP_204_NO_CONTENT
+            )
         return Response(
             {'results': self._count_windows(df, window_size)}
         )