Browse Source

fix(perf-views): Adding a check for no results (#20195)

- Checking that there are results before trying to return them
- Fixes SENTRY-HF2
William Mak 4 years ago
parent
commit
05c033287a

+ 2 - 0
src/sentry/api/endpoints/organization_events_meta.py

@@ -88,6 +88,8 @@ class OrganizationEventBaseline(OrganizationEventsEndpointBase):
                 limit=1,
                 referrer="api.transaction-baseline.get_id",
             )
+            if len(result["data"]) == 0:
+                return Response(status=404)
 
         baseline_data = result["data"][0]
         baseline_data[baseline_alias] = baseline_value

+ 12 - 0
tests/snuba/api/endpoints/test_organization_events_meta.py

@@ -289,6 +289,18 @@ class OrganizationEventBaselineEndpoint(APITestCase, SnubaTestCase):
         assert data["transaction.duration"] == 120000
         assert data["max_transaction_duration"] == 120000
 
+    def test_get_baseline_with_no_baseline(self):
+        response = self.client.get(
+            self.url,
+            {
+                "query": "event.type:transaction transaction:very_real_transaction",
+                "baselineFunction": "max(transaction.duration)",
+            },
+            format="json",
+        )
+
+        assert response.status_code == 404, response.content
+
 
 class OrganizationEventsRelatedIssuesEndpoint(APITestCase, SnubaTestCase):
     def setUp(self):