-
Notifications
You must be signed in to change notification settings - Fork 16.4k
Closed
Labels
area:APIAirflow's REST/HTTP APIAirflow's REST/HTTP APIarea:corekind:bugThis is a clearly a bugThis is a clearly a bug
Description
Apache Airflow version
3.1.0
If "Other Airflow 2/3 version" selected, which one?
No response
What happened?
it is not passing data from one dag to another why
What you think should happen instead?
No response
How to reproduce
Steps to Reproduce:
Create a DAG dag_a with a PythonOperator returning a dictionary:
def fetch_job():
return {"job_id": 123, "target_id": 987}
Use TriggerDagRunOperator to trigger another DAG (dag_b) with conf from XCom:
TriggerDagRunOperator(
task_id="trigger_dag_b",
trigger_dag_id="dag_b",
conf="{{ ti.xcom_pull(task_ids='fetch_job') }}"
)
Run the DAG.
Observed Behavior:
Airflow raises a Pydantic ValidationError.
The DAG fails to trigger dag_b.
Cause:
Airflow 3.x strictly validates that conf is a dict.
Using {{ ti.xcom_pull(...) }} without fromjson returns a string, not a dictionary.
Operating System
linux
Versions of Apache Airflow Providers
No response
Deployment
Official Apache Airflow Helm Chart
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
- I agree to follow this project's Code of Conduct
Metadata
Metadata
Assignees
Labels
area:APIAirflow's REST/HTTP APIAirflow's REST/HTTP APIarea:corekind:bugThis is a clearly a bugThis is a clearly a bug