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

pierrejeambrun pushed a commit to branch v3-1-test
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/v3-1-test by this push:
     new 71d2eed9526 feat: added toasters for permission denied (#57966) 
(#58016) (#60646)
71d2eed9526 is described below

commit 71d2eed9526e5f8c2ffeb4e0624d840d7d9108eb
Author: Pierre Jeambrun <[email protected]>
AuthorDate: Fri Jan 16 17:50:38 2026 +0100

    feat: added toasters for permission denied (#57966) (#58016) (#60646)
    
    * feat: add http error validation and toasters for permission denied
    
    * disable trigger dag button if the useTrigger hook returns an error
    
    * fix lint
    
    * ci: ran prek hooks
    
    * ci: fix linting
    
    * fix toaster error handling. added toaster error translations json
    
    * removed error util. refactored to use generic error
    
    * remove deleted utility import
    
    * remove generic from triggerDag.toaster.error translation
    
    (cherry picked from commit ba7e2fb4685474afb131a517836e0c7bfd956253)
    
    Co-authored-by: Aaron Wolmutt 
<[email protected]>
---
 .../src/airflow/ui/public/i18n/locales/en/components.json   |  3 +++
 .../airflow/ui/src/components/TriggerDag/TriggerDAGForm.tsx |  4 +++-
 airflow-core/src/airflow/ui/src/queries/useTrigger.ts       | 13 +++++++++++--
 3 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/en/components.json 
b/airflow-core/src/airflow/ui/public/i18n/locales/en/components.json
index 8f33455cd87..8da7c649299 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/en/components.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/en/components.json
@@ -115,6 +115,9 @@
     "selectLabel": "Single Run",
     "title": "Trigger Dag",
     "toaster": {
+      "error": {
+        "title": "Failed to Trigger DAG"
+      },
       "success": {
         "description": "Dag run has been successfully triggered.",
         "title": "Dag Run Triggered"
diff --git 
a/airflow-core/src/airflow/ui/src/components/TriggerDag/TriggerDAGForm.tsx 
b/airflow-core/src/airflow/ui/src/components/TriggerDag/TriggerDAGForm.tsx
index 8c92730714d..8cb19ca118b 100644
--- a/airflow-core/src/airflow/ui/src/components/TriggerDag/TriggerDAGForm.tsx
+++ b/airflow-core/src/airflow/ui/src/components/TriggerDag/TriggerDAGForm.tsx
@@ -167,7 +167,9 @@ const TriggerDAGForm = ({ dagDisplayName, dagId, isPaused, 
onClose, open }: Trig
           <Spacer />
           <Button
             colorPalette="brand"
-            disabled={Boolean(errors.conf) || Boolean(errors.date) || 
formError || isPending}
+            disabled={
+              Boolean(errors.conf) || Boolean(errors.date) || formError || 
isPending || Boolean(errorTrigger)
+            }
             onClick={() => void handleSubmit(onSubmit)()}
           >
             <FiPlay /> {translate("components:triggerDag.button")}
diff --git a/airflow-core/src/airflow/ui/src/queries/useTrigger.ts 
b/airflow-core/src/airflow/ui/src/queries/useTrigger.ts
index ee6fae94909..b0dae529c4f 100644
--- a/airflow-core/src/airflow/ui/src/queries/useTrigger.ts
+++ b/airflow-core/src/airflow/ui/src/queries/useTrigger.ts
@@ -62,7 +62,12 @@ export const useTrigger = ({ dagId, onSuccessConfirm }: { 
dagId: string; onSucce
     }
   };
 
-  const onError = (_error: unknown) => {
+  const onError = (_error: Error) => {
+    toaster.create({
+      description: _error.message,
+      title: translate("triggerDag.toaster.error.title"),
+      type: "error",
+    });
     setError(_error);
   };
 
@@ -93,5 +98,9 @@ export const useTrigger = ({ dagId, onSuccessConfirm }: { 
dagId: string; onSucce
     });
   };
 
-  return { error, isPending, triggerDagRun };
+  return {
+    error,
+    isPending,
+    triggerDagRun,
+  };
 };

Reply via email to