timeout on Dynamic Task mapping : skipped inner task , task status is still success
- Dominant language
- Python
- Stars
- 46.9k
- Forks
- 17.8k
- Avg merge
- 2d 7h
- Merged PRs (30d)
- 484
Description
### Apache Airflow version
2.8.1
### If "Other Airflow 2 version" selected, which one?
_No response_
### What happened?

this is confusing and not obvious to find the problem when just looking at the grid view on a complex dag
### What you think should happen instead?
maybe we should mark the task as skipped or failed
### How to reproduce
```python
from datetime import timedelta
from airflow.operators.python import PythonOperator
from pendulum import today
from airflow import DAG
dag = DAG(
dag_id="test_dag",
schedule_interval=None,
dagrun_timeout=timedelta(seconds=5),
start_date=today("UTC").add(days=-1)
)
with dag:
def something(arg):
import time
time.sleep(int(arg))
PythonOperator.partial(
task_id="toto",
python_callable=something,
).expand(op_args=[("10",), ("5",), ("4",)])
```
### Operating System
ubuntu 22.04
### Versions of Apache Airflow Providers
_No response_
### Deployment
Docker-Compose
### 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)
Contributor guide
Research direction
Start by running the provided DAG reproduction with the 5-second dagrun timeout and inspect the dynamic task mapping states in the grid view. Trace how the timed-out inner tasks are represented, then ensure the resulting state is no longer shown as successful and verify the behavior against the agreed skipped-or-failed outcome.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data-engineering
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100