feat: show nice error page in prod (#16695)
diff --git a/superset/views/base.py b/superset/views/base.py
index 9d27861..3afb02d 100644
--- a/superset/views/base.py
+++ b/superset/views/base.py
@@ -439,6 +439,10 @@
@superset_app.errorhandler(CommandException)
def show_command_errors(ex: CommandException) -> FlaskResponse:
logger.warning(ex)
+ if "text/html" in request.accept_mimetypes and not config["DEBUG"]:
+ path = resource_filename("superset", "static/assets/500.html")
+ return send_file(path), 500
+
extra = ex.normalized_messages() if isinstance(ex, CommandInvalidError) else {}
return json_errors_response(
errors=[
@@ -457,6 +461,10 @@
@superset_app.errorhandler(Exception)
def show_unexpected_exception(ex: Exception) -> FlaskResponse:
logger.exception(ex)
+ if "text/html" in request.accept_mimetypes and not config["DEBUG"]:
+ path = resource_filename("superset", "static/assets/500.html")
+ return send_file(path), 500
+
return json_errors_response(
errors=[
SupersetError(