MaiHoangViet1809 opened a new issue, #27952:
URL: https://github.com/apache/airflow/issues/27952
### Apache Airflow version
2.4.3
### What happened
when use output from task decorator as parameter (external_task_ids) in
ExternalTaskSensor, it show up this log:
Broken DAG: [*******/airflow/dags/TEST_NEW_PIPELINE.py] Traceback (most
recent call last):
File
"*******/env3.10.5/lib/python3.10/site-packages/airflow/models/baseoperator.py",
line 408, in apply_defaults
result = func(self, **kwargs, default_args=default_args)
File
"*******/env3.10.5/lib/python3.10/site-packages/airflow/sensors/external_task.py",
line 164, in __init__
if external_task_ids and len(external_task_ids) >
len(set(external_task_ids)):
TypeError: object of type 'PlainXComArg' has no len()
### What you think should happen instead
this document
https://airflow.apache.org/docs/apache-airflow/stable/tutorial/taskflow.html
show that we can use it without any warning, note about it.
I think need to fix the line in error log:
"if external_task_ids and len(external_task_ids) >
len(set(external_task_ids)):"
### How to reproduce
```
from airflow.decorators import dag, task
from airflow.operators.python import get_current_context
from airflow.sensors.external_task import ExternalTaskSensor
from datetime import datetime
configure = {"dag_id": "test_new_skeleton",
"schedule": None,
"start_date": datetime(2022,1,1),
}
@task
def preprocess_dependency() -> list:
return ["random-task-name"]
@dag(**configure)
def pipeline():
t_preprocess = preprocess_dependency()
task_dependency = ExternalTaskSensor(task_id=f"Check_Dependency",
external_dag_id='random-dag-name-that-exist',
external_task_ids=t_preprocess ,
poke_interval=60,
mode="reschedule",
timeout=172800,
allowed_states=['success'],
failed_states=['failed', 'skipped'],
check_existence=True,)
dag = pipeline()
```
### Operating System
REHL 7
### Versions of Apache Airflow Providers
_No response_
### Deployment
Virtualenv installation
### Deployment details
_No response_
### Anything else
_No response_
### Are you willing to submit PR?
- [ ] Yes I am willing to submit a PR!
### Code of Conduct
- [X] I agree to follow this project's [Code of
Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]