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