This is an automated email from the ASF dual-hosted git repository.

enzomartellucci pushed a commit to branch enxdev/fix/chart-error-alerts
in repository https://gitbox.apache.org/repos/asf/superset.git

commit 73bfacf28fbedc65d00e5e48b90ade8b9c5c38f2
Author: Enzo Martellucci <[email protected]>
AuthorDate: Mon Feb 16 15:11:07 2026 +0100

    fix(chart): make chart error banners non-dismissible
---
 superset-frontend/src/components/Chart/ChartErrorMessage.tsx          | 1 +
 .../src/components/ErrorMessage/DatabaseErrorMessage.tsx              | 2 ++
 .../src/components/ErrorMessage/DatasetNotFoundErrorMessage.tsx       | 2 ++
 .../src/components/ErrorMessage/ErrorMessageWithStackTrace.tsx        | 4 ++++
 .../src/components/ErrorMessage/FrontendNetworkErrorMessage.tsx       | 2 ++
 .../src/components/ErrorMessage/InvalidSQLErrorMessage.tsx            | 2 ++
 .../src/components/ErrorMessage/OAuth2RedirectMessage.tsx             | 2 ++
 .../src/components/ErrorMessage/ParameterErrorMessage.tsx             | 2 ++
 superset-frontend/src/components/ErrorMessage/TimeoutErrorMessage.tsx | 2 ++
 superset-frontend/src/components/ErrorMessage/types.ts                | 1 +
 10 files changed, 20 insertions(+)

diff --git a/superset-frontend/src/components/Chart/ChartErrorMessage.tsx 
b/superset-frontend/src/components/Chart/ChartErrorMessage.tsx
index 4c3f79965b3..cd21275153f 100644
--- a/superset-frontend/src/components/Chart/ChartErrorMessage.tsx
+++ b/superset-frontend/src/components/Chart/ChartErrorMessage.tsx
@@ -49,6 +49,7 @@ export const ChartErrorMessage: FC<Props> = ({ chartId, 
error, ...props }) => {
       {...props}
       error={ownedError}
       title={DEFAULT_CHART_ERROR}
+      closable={false}
     />
   );
 };
diff --git 
a/superset-frontend/src/components/ErrorMessage/DatabaseErrorMessage.tsx 
b/superset-frontend/src/components/ErrorMessage/DatabaseErrorMessage.tsx
index 3125ca92162..fad71169c58 100644
--- a/superset-frontend/src/components/ErrorMessage/DatabaseErrorMessage.tsx
+++ b/superset-frontend/src/components/ErrorMessage/DatabaseErrorMessage.tsx
@@ -39,6 +39,7 @@ interface DatabaseErrorExtra {
 export function DatabaseErrorMessage({
   error,
   source,
+  closable,
 }: ErrorMessageComponentProps<DatabaseErrorExtra | null>) {
   const { extra, level, message } = error;
 
@@ -101,6 +102,7 @@ export function DatabaseErrorMessage({
       description={alertDescription}
       type={level}
       descriptionDetails={body}
+      closable={closable}
     />
   );
 }
diff --git 
a/superset-frontend/src/components/ErrorMessage/DatasetNotFoundErrorMessage.tsx 
b/superset-frontend/src/components/ErrorMessage/DatasetNotFoundErrorMessage.tsx
index f0f279e4a22..6623715ee0b 100644
--- 
a/superset-frontend/src/components/ErrorMessage/DatasetNotFoundErrorMessage.tsx
+++ 
b/superset-frontend/src/components/ErrorMessage/DatasetNotFoundErrorMessage.tsx
@@ -24,6 +24,7 @@ import { ErrorAlert } from './ErrorAlert';
 export function DatasetNotFoundErrorMessage({
   error,
   subtitle,
+  closable,
 }: ErrorMessageComponentProps) {
   const { level, message } = error;
   return (
@@ -32,6 +33,7 @@ export function DatasetNotFoundErrorMessage({
       message={subtitle}
       description={message}
       type={level}
+      closable={closable}
     />
   );
 }
diff --git 
a/superset-frontend/src/components/ErrorMessage/ErrorMessageWithStackTrace.tsx 
b/superset-frontend/src/components/ErrorMessage/ErrorMessageWithStackTrace.tsx
index dc562e473ba..2dc7f793bbe 100644
--- 
a/superset-frontend/src/components/ErrorMessage/ErrorMessageWithStackTrace.tsx
+++ 
b/superset-frontend/src/components/ErrorMessage/ErrorMessageWithStackTrace.tsx
@@ -38,6 +38,7 @@ type Props = {
   errorMitigationFunction?: () => void;
   fallback?: ReactNode;
   compact?: boolean;
+  closable?: boolean;
 };
 
 export function ErrorMessageWithStackTrace({
@@ -51,6 +52,7 @@ export function ErrorMessageWithStackTrace({
   descriptionDetails,
   fallback,
   compact,
+  closable = true,
 }: Props) {
   // Check if a custom error message component was registered for this message
   if (error) {
@@ -62,6 +64,7 @@ export function ErrorMessageWithStackTrace({
       return (
         <ErrorMessageComponent
           compact={compact}
+          closable={closable}
           error={error}
           source={source}
           subtitle={subtitle}
@@ -99,6 +102,7 @@ export function ErrorMessageWithStackTrace({
       description={description}
       descriptionDetails={computedDescriptionDetails}
       compact={compact}
+      closable={closable}
     />
   );
 }
diff --git 
a/superset-frontend/src/components/ErrorMessage/FrontendNetworkErrorMessage.tsx 
b/superset-frontend/src/components/ErrorMessage/FrontendNetworkErrorMessage.tsx
index 98338af13c7..e52b96b8fee 100644
--- 
a/superset-frontend/src/components/ErrorMessage/FrontendNetworkErrorMessage.tsx
+++ 
b/superset-frontend/src/components/ErrorMessage/FrontendNetworkErrorMessage.tsx
@@ -25,11 +25,13 @@ export function FrontendNetworkErrorMessage({
   error,
   subtitle,
   compact,
+  closable,
 }: ErrorMessageComponentProps) {
   const { level, message } = error;
   return (
     <ErrorAlert
       compact={compact}
+      closable={closable}
       errorType={t('Network Error')}
       message={message}
       type={level}
diff --git 
a/superset-frontend/src/components/ErrorMessage/InvalidSQLErrorMessage.tsx 
b/superset-frontend/src/components/ErrorMessage/InvalidSQLErrorMessage.tsx
index b7eb1135227..5792f2d4db3 100644
--- a/superset-frontend/src/components/ErrorMessage/InvalidSQLErrorMessage.tsx
+++ b/superset-frontend/src/components/ErrorMessage/InvalidSQLErrorMessage.tsx
@@ -34,6 +34,7 @@ interface SupersetParseErrorExtra {
 export function InvalidSQLErrorMessage({
   error,
   subtitle,
+  closable,
 }: ErrorMessageComponentProps<SupersetParseErrorExtra>) {
   const { extra, level, message } = error;
 
@@ -58,6 +59,7 @@ export function InvalidSQLErrorMessage({
       message={subtitle}
       type={level}
       description={body}
+      closable={closable}
     />
   );
 }
diff --git 
a/superset-frontend/src/components/ErrorMessage/OAuth2RedirectMessage.tsx 
b/superset-frontend/src/components/ErrorMessage/OAuth2RedirectMessage.tsx
index b79e7b9c56f..285a86e01c2 100644
--- a/superset-frontend/src/components/ErrorMessage/OAuth2RedirectMessage.tsx
+++ b/superset-frontend/src/components/ErrorMessage/OAuth2RedirectMessage.tsx
@@ -63,6 +63,7 @@ interface OAuth2RedirectExtra {
 export function OAuth2RedirectMessage({
   error,
   source,
+  closable,
 }: ErrorMessageComponentProps<OAuth2RedirectExtra>) {
   const oAuthTab = useRef<Window | null>(null);
   const { extra, level } = error;
@@ -173,6 +174,7 @@ export function OAuth2RedirectMessage({
       message={subtitle}
       type={level}
       description={body}
+      closable={closable}
     />
   );
 }
diff --git 
a/superset-frontend/src/components/ErrorMessage/ParameterErrorMessage.tsx 
b/superset-frontend/src/components/ErrorMessage/ParameterErrorMessage.tsx
index 2e4dbf23d9e..73d8b264c7f 100644
--- a/superset-frontend/src/components/ErrorMessage/ParameterErrorMessage.tsx
+++ b/superset-frontend/src/components/ErrorMessage/ParameterErrorMessage.tsx
@@ -56,6 +56,7 @@ const findMatches = (undefinedParameters: string[], 
templateKeys: string[]) => {
 export function ParameterErrorMessage({
   error,
   subtitle,
+  closable,
 }: ErrorMessageComponentProps<ParameterErrorExtra>) {
   const { extra = { issue_codes: [] }, level, message } = error;
 
@@ -118,6 +119,7 @@ export function ParameterErrorMessage({
       message={message}
       description={subtitle}
       descriptionDetails={body}
+      closable={closable}
     />
   );
 }
diff --git 
a/superset-frontend/src/components/ErrorMessage/TimeoutErrorMessage.tsx 
b/superset-frontend/src/components/ErrorMessage/TimeoutErrorMessage.tsx
index d9e5a26093d..298d1859832 100644
--- a/superset-frontend/src/components/ErrorMessage/TimeoutErrorMessage.tsx
+++ b/superset-frontend/src/components/ErrorMessage/TimeoutErrorMessage.tsx
@@ -36,6 +36,7 @@ interface TimeoutErrorExtra {
 export function TimeoutErrorMessage({
   error,
   source,
+  closable,
 }: ErrorMessageComponentProps<TimeoutErrorExtra>) {
   const { extra, level } = error;
 
@@ -95,6 +96,7 @@ export function TimeoutErrorMessage({
       message={subtitle}
       type={level}
       descriptionDetails={body}
+      closable={closable}
     />
   );
 }
diff --git a/superset-frontend/src/components/ErrorMessage/types.ts 
b/superset-frontend/src/components/ErrorMessage/types.ts
index de38332fa6b..de597d19347 100644
--- a/superset-frontend/src/components/ErrorMessage/types.ts
+++ b/superset-frontend/src/components/ErrorMessage/types.ts
@@ -26,6 +26,7 @@ export type ErrorMessageComponentProps<ExtraType = 
Record<string, any> | null> =
     source?: ErrorSource;
     subtitle?: ReactNode;
     compact?: boolean;
+    closable?: boolean;
   };
 
 export type ErrorMessageComponent = ComponentType<ErrorMessageComponentProps>;

Reply via email to