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

amoghdesai pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new e55861f94ad Fix trigger rule error messages showing enum names instead 
of values (#54774)
e55861f94ad is described below

commit e55861f94ad80bb5e6f0f217c4b8070a29d23a72
Author: Amogh Desai <[email protected]>
AuthorDate: Thu Aug 21 23:09:08 2025 +0530

    Fix trigger rule error messages showing enum names instead of values 
(#54774)
    
    Co-authored-by: Ankit Chaurasia <[email protected]>
---
 .../src/airflow/ti_deps/deps/trigger_rule_dep.py   | 32 ++++++++++++----------
 1 file changed, 17 insertions(+), 15 deletions(-)

diff --git a/airflow-core/src/airflow/ti_deps/deps/trigger_rule_dep.py 
b/airflow-core/src/airflow/ti_deps/deps/trigger_rule_dep.py
index 444b6925a6d..49d9fa4d006 100644
--- a/airflow-core/src/airflow/ti_deps/deps/trigger_rule_dep.py
+++ b/airflow-core/src/airflow/ti_deps/deps/trigger_rule_dep.py
@@ -475,7 +475,7 @@ class TriggerRuleDep(BaseTIDep):
                 if success <= 0:
                     yield self._failing_status(
                         reason=(
-                            f"Task's trigger rule '{trigger_rule}' requires 
one upstream task success, "
+                            f"Task's trigger rule '{getattr(trigger_rule, 
'value', trigger_rule)}' requires one upstream task success, "
                             f"but none were found. 
upstream_states={upstream_states}, "
                             f"upstream_task_ids={task.upstream_task_ids}"
                         )
@@ -484,7 +484,7 @@ class TriggerRuleDep(BaseTIDep):
                 if not failed and not upstream_failed:
                     yield self._failing_status(
                         reason=(
-                            f"Task's trigger rule '{trigger_rule}' requires 
one upstream task failure, "
+                            f"Task's trigger rule '{getattr(trigger_rule, 
'value', trigger_rule)}' requires one upstream task failure, "
                             f"but none were found. 
upstream_states={upstream_states}, "
                             f"upstream_task_ids={task.upstream_task_ids}"
                         )
@@ -493,7 +493,7 @@ class TriggerRuleDep(BaseTIDep):
                 if success + failed <= 0:
                     yield self._failing_status(
                         reason=(
-                            f"Task's trigger rule '{trigger_rule}' "
+                            f"Task's trigger rule '{getattr(trigger_rule, 
'value', trigger_rule)}' "
                             "requires at least one upstream task failure or 
success "
                             f"but none were failed or success. 
upstream_states={upstream_states}, "
                             f"upstream_task_ids={task.upstream_task_ids}"
@@ -506,7 +506,7 @@ class TriggerRuleDep(BaseTIDep):
                 if num_failures > 0:
                     yield self._failing_status(
                         reason=(
-                            f"Task's trigger rule '{trigger_rule}' requires 
all upstream tasks to have "
+                            f"Task's trigger rule '{getattr(trigger_rule, 
'value', trigger_rule)}' requires all upstream tasks to have "
                             f"succeeded, but found {num_failures} 
non-success(es). "
                             f"upstream_states={upstream_states}, "
                             f"upstream_task_ids={task.upstream_task_ids}"
@@ -519,7 +519,7 @@ class TriggerRuleDep(BaseTIDep):
                 if num_success > 0:
                     yield self._failing_status(
                         reason=(
-                            f"Task's trigger rule '{trigger_rule}' requires 
all upstream tasks "
+                            f"Task's trigger rule '{getattr(trigger_rule, 
'value', trigger_rule)}' requires all upstream tasks "
                             f"to have failed, but found {num_success} 
non-failure(s). "
                             f"upstream_states={upstream_states}, "
                             f"upstream_task_ids={task.upstream_task_ids}"
@@ -529,7 +529,7 @@ class TriggerRuleDep(BaseTIDep):
                 if not upstream_done:
                     yield self._failing_status(
                         reason=(
-                            f"Task's trigger rule '{trigger_rule}' requires 
all upstream tasks to have "
+                            f"Task's trigger rule '{getattr(trigger_rule, 
'value', trigger_rule)}' requires all upstream tasks to have "
                             f"completed, but found {len(upstream_tasks) - 
done} task(s) that were "
                             f"not done. upstream_states={upstream_states}, "
                             f"upstream_task_ids={task.upstream_task_ids}"
@@ -542,7 +542,7 @@ class TriggerRuleDep(BaseTIDep):
                 if num_failures > 0:
                     yield self._failing_status(
                         reason=(
-                            f"Task's trigger rule '{trigger_rule}' requires 
all upstream tasks to have "
+                            f"Task's trigger rule '{getattr(trigger_rule, 
'value', trigger_rule)}' requires all upstream tasks to have "
                             f"succeeded or been skipped, but found 
{num_failures} non-success(es). "
                             f"upstream_states={upstream_states}, "
                             f"upstream_task_ids={task.upstream_task_ids}"
@@ -552,7 +552,7 @@ class TriggerRuleDep(BaseTIDep):
                 if not upstream_done or (skipped > 0):
                     yield self._failing_status(
                         reason=(
-                            f"Task's trigger rule '{trigger_rule}' requires 
all upstream tasks to not "
+                            f"Task's trigger rule '{getattr(trigger_rule, 
'value', trigger_rule)}' requires all upstream tasks to not "
                             f"have been skipped, but found {skipped} task(s) 
skipped. "
                             f"upstream_states={upstream_states}, "
                             f"upstream_task_ids={task.upstream_task_ids}"
@@ -563,7 +563,7 @@ class TriggerRuleDep(BaseTIDep):
                 if num_non_skipped > 0:
                     yield self._failing_status(
                         reason=(
-                            f"Task's trigger rule '{trigger_rule}' requires 
all upstream tasks to have been "
+                            f"Task's trigger rule '{getattr(trigger_rule, 
'value', trigger_rule)}' requires all upstream tasks to have been "
                             f"skipped, but found {num_non_skipped} task(s) in 
non skipped state. "
                             f"upstream_states={upstream_states}, "
                             f"upstream_task_ids={task.upstream_task_ids}"
@@ -573,7 +573,7 @@ class TriggerRuleDep(BaseTIDep):
                 if not upstream_done:
                     yield self._failing_status(
                         reason=(
-                            f"Task's trigger rule '{trigger_rule}' requires 
all upstream tasks to have "
+                            f"Task's trigger rule '{getattr(trigger_rule, 
'value', trigger_rule)}' requires all upstream tasks to have "
                             f"completed, but found {len(upstream_tasks) - 
done} task(s) that were not done. "
                             f"upstream_states={upstream_states}, "
                             f"upstream_task_ids={task.upstream_task_ids}"
@@ -582,7 +582,7 @@ class TriggerRuleDep(BaseTIDep):
                 elif upstream_setup and not success_setup:
                     yield self._failing_status(
                         reason=(
-                            f"Task's trigger rule '{trigger_rule}' requires at 
least one upstream setup task "
+                            f"Task's trigger rule '{getattr(trigger_rule, 
'value', trigger_rule)}' requires at least one upstream setup task "
                             f"be successful, but found {upstream_setup - 
success_setup} task(s) that were "
                             f"not. upstream_states={upstream_states}, "
                             f"upstream_task_ids={task.upstream_task_ids}"
@@ -599,7 +599,7 @@ class TriggerRuleDep(BaseTIDep):
                 if skipped > 0:
                     yield self._failing_status(
                         reason=(
-                            f"Task's trigger rule '{trigger_rule}' requires 
all non-skipped upstream tasks to have "
+                            f"Task's trigger rule '{getattr(trigger_rule, 
'value', trigger_rule)}' requires all non-skipped upstream tasks to have "
                             f"completed, but found {skipped} skipped task(s). "
                             f"upstream_states={upstream_states}, "
                             f"upstream_task_ids={task.upstream_task_ids}"
@@ -608,7 +608,7 @@ class TriggerRuleDep(BaseTIDep):
                 elif non_skipped_done < non_skipped_upstream:
                     yield self._failing_status(
                         reason=(
-                            f"Task's trigger rule '{trigger_rule}' requires 
all non-skipped upstream tasks to have "
+                            f"Task's trigger rule '{getattr(trigger_rule, 
'value', trigger_rule)}' requires all non-skipped upstream tasks to have "
                             f"completed, but found {non_skipped_upstream - 
non_skipped_done} task(s) that were not done. "
                             f"upstream_states={upstream_states}, "
                             f"upstream_task_ids={task.upstream_task_ids}"
@@ -617,14 +617,16 @@ class TriggerRuleDep(BaseTIDep):
                 elif success == 0:
                     yield self._failing_status(
                         reason=(
-                            f"Task's trigger rule '{trigger_rule}' requires 
all non-skipped upstream tasks to have "
+                            f"Task's trigger rule '{getattr(trigger_rule, 
'value', trigger_rule)}' requires all non-skipped upstream tasks to have "
                             f"completed and at least one upstream task has 
succeeded, but found "
                             f"{success} successful task(s). 
upstream_states={upstream_states}, "
                             f"upstream_task_ids={task.upstream_task_ids}"
                         )
                     )
             else:
-                yield self._failing_status(reason=f"No strategy to evaluate 
trigger rule '{trigger_rule}'.")
+                yield self._failing_status(
+                    reason=f"No strategy to evaluate trigger rule 
'{getattr(trigger_rule, 'value', trigger_rule)}'."
+                )
 
         if TYPE_CHECKING:
             assert ti.task

Reply via email to