From 2f23a9ceac898aabd5b8247ef86dfd4a0487b982 Mon Sep 17 00:00:00 2001 From: "Hugh A. Miles II" Date: Mon, 5 Dec 2022 20:41:19 -0500 Subject: [PATCH] chore: return 404 instead of 500 for datasource not found (#22333) --- superset/charts/data/api.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/superset/charts/data/api.py b/superset/charts/data/api.py index 773229ad5f..152383e0c6 100644 --- a/superset/charts/data/api.py +++ b/superset/charts/data/api.py @@ -41,6 +41,7 @@ from superset.charts.post_processing import apply_post_process from superset.charts.schemas import ChartDataQueryContextSchema from superset.common.chart_data import ChartDataResultFormat, ChartDataResultType from superset.connectors.base.models import BaseDatasource +from superset.dao.exceptions import DatasourceNotFound from superset.exceptions import QueryObjectValidationError from superset.extensions import event_logger from superset.utils.async_query_manager import AsyncQueryTokenException @@ -141,6 +142,8 @@ class ChartDataRestApi(ChartRestApi): query_context = self._create_query_context_from_form(json_body) command = ChartDataCommand(query_context) command.validate() + except DatasourceNotFound as error: + return self.response_404() except QueryObjectValidationError as error: return self.response_400(message=error.message) except ValidationError as error: @@ -229,6 +232,8 @@ class ChartDataRestApi(ChartRestApi): query_context = self._create_query_context_from_form(json_body) command = ChartDataCommand(query_context) command.validate() + except DatasourceNotFound as error: + return self.response_404() except QueryObjectValidationError as error: return self.response_400(message=error.message) except ValidationError as error: