antonysouthworth-halter opened a new issue, #55548:
URL: https://github.com/apache/airflow/issues/55548
### Apache Airflow version
Other Airflow 2 version (please specify below)
### If "Other Airflow 2 version" selected, which one?
2.10.4
### What happened?
DAG `on_{success,failure}_callback` not being invoked when expected; reprex
DAG file provided below.
### What you think should happen instead?
It should invoke the callback.
### How to reproduce
reprex:
```python
"""
Example of using DAG-level callbacks.
"""
import datetime
from pathlib import Path
import pendulum
from airflow import DAG
from airflow.timetables.trigger import CronTriggerTimetable
from airflow.operators.python import PythonOperator
DAG_ID = Path(__file__).stem
with DAG(
dag_id=DAG_ID,
schedule=CronTriggerTimetable("* * * * *",
timezone=pendulum.timezone("UTC")),
start_date=datetime.datetime(2025, 9, 11,
tzinfo=pendulum.timezone("UTC")),
catchup=False,
doc_md=__doc__,
max_active_runs=1,
on_success_callback=[
lambda *args, **kwargs: print(
f"hello from dag success callback {args=} {kwargs=}"
)
],
default_args=dict(
on_success_callback=[
lambda *args, **kwargs: print(
f"hello from ti success callback {args=} {kwargs=}"
)
]
),
):
op = PythonOperator(
task_id="print_hello",
python_callable=lambda: print("hello world"),
)
```
<img width="1871" height="830" alt="Image"
src="https://github.com/user-attachments/assets/4d99bdb9-7936-4a25-92d3-972ed990620f"
/>
The *task-level* callback is invoked, nice! But the _DAG_ level it seems
not. See below logs
```
[
{
"@timestamp": "2025-09-12 01:28:04.370",
"@message": "hello from ti success callback args=({'conf':
<airflow.configuration.AirflowConfigParser object at 0x7fd1c57eb890>, 'dag':
<DAG: example_dag_callbacks>, 'dag_run': <DagRun example_dag_callbacks @
2025-09-12 01:28:00+00:00: scheduled__2025-09-12T01:28:00+00:00, state:running,
queued_at: 2025-09-12 01:28:00.655460+00:00. externally triggered: False>,
'data_interval_end': DateTime(2025, 9, 12, 1, 28, 0, tzinfo=Timezone('UTC')),
'data_interval_start': DateTime(2025, 9, 12, 1, 28, 0, tzinfo=Timezone('UTC')),
'outlet_events': <airflow.utils.context.OutletEventAccessors object at
0x7fd1b62139e0>, 'ds': '2025-09-12', 'ds_nodash': '20250912', 'execution_date':
DateTime(2025, 9, 12, 1, 28, 0, tzinfo=Timezone('UTC')), 'expanded_ti_count':
None, 'inlets': [], 'inlet_events': InletEventsAccessors(_inlets=[],
_datasets={}, _dataset_aliases={}, _session=<sqlalchemy.orm.session.Session
object at 0x7fd1c50afe30>), 'logical_date': DateTime(2025, 9, 12, 1, 28, 0,
tzinfo=Timezone
('UTC')), 'macros': <module 'airflow.macros' from
'/home/airflow/.local/lib/python3.12/site-packages/airflow/macros/__init__.py'>,
'map_index_template': None, 'next_ds': '2025-09-12', 'next_ds_nodash':
'20250912', 'next_execution_date': DateTime(2025, 9, 12, 1, 29, 0,
tzinfo=Timezone('UTC')), 'outlets': [], 'params': {},
'prev_data_interval_start_success': DateTime(2025, 9, 12, 1, 27, 0,
tzinfo=Timezone('UTC')), 'prev_data_interval_end_success': DateTime(2025, 9,
12, 1, 27, 0, tzinfo=Timezone('UTC')), 'prev_ds': None, 'prev_ds_nodash': None,
'prev_execution_date': None, 'prev_execution_date_success': DateTime(2025, 9,
12, 1, 27, 0, tzinfo=Timezone('UTC')), 'prev_start_date_success':
DateTime(2025, 9, 12, 1, 27, 0, 339820, tzinfo=Timezone('UTC')),
'prev_end_date_success': DateTime(2025, 9, 12, 1, 27, 4, 557148,
tzinfo=Timezone('UTC')), 'run_id': 'scheduled__2025-09-12T01:28:00+00:00',
'task': <Task(PythonOperator): print_hello>, 'task_instance': <TaskInstance:
example_dag_callbacks.p
rint_hello scheduled__2025-09-12T01:28:00+00:00 [success]>,
'task_instance_key_str': 'example_dag_callbacks__print_hello__20250912',
'test_mode': False, 'ti': <TaskInstance: example_dag_callbacks.print_hello
scheduled__2025-09-12T01:28:00+00:00 [success]>, 'tomorrow_ds': '2025-09-13',
'tomorrow_ds_nodash': '20250913', 'triggering_dataset_events': <Proxy at
0x7fd1b6240d80 with factory <function
_get_template_context.<locals>.get_triggering_events at 0x7fd1b62347c0>>, 'ts':
'2025-09-12T01:28:00+00:00', 'ts_nodash': '20250912T012800',
'ts_nodash_with_tz': '20250912T012800+0000', 'var': {'json': None, 'value':
None}, 'conn': None, 'yesterday_ds': '2025-09-11', 'yesterday_ds_nodash':
'20250911', 'templates_dict': None},) kwargs={}",
"@log": "204412309905:halter-airflow-tasks"
},
{
"@timestamp": "2025-09-12 01:27:04.223",
"@message": "hello from ti success callback args=({'conf':
<airflow.configuration.AirflowConfigParser object at 0x7fd1c57eb890>, 'dag':
<DAG: example_dag_callbacks>, 'dag_run': <DagRun example_dag_callbacks @
2025-09-12 01:27:00+00:00: scheduled__2025-09-12T01:27:00+00:00, state:running,
queued_at: 2025-09-12 01:27:00.279646+00:00. externally triggered: False>,
'data_interval_end': DateTime(2025, 9, 12, 1, 27, 0, tzinfo=Timezone('UTC')),
'data_interval_start': DateTime(2025, 9, 12, 1, 27, 0, tzinfo=Timezone('UTC')),
'outlet_events': <airflow.utils.context.OutletEventAccessors object at
0x7fd1b6213bc0>, 'ds': '2025-09-12', 'ds_nodash': '20250912', 'execution_date':
DateTime(2025, 9, 12, 1, 27, 0, tzinfo=Timezone('UTC')), 'expanded_ti_count':
None, 'inlets': [], 'inlet_events': InletEventsAccessors(_inlets=[],
_datasets={}, _dataset_aliases={}, _session=<sqlalchemy.orm.session.Session
object at 0x7fd1c50ae750>), 'logical_date': DateTime(2025, 9, 12, 1, 27, 0,
tzinfo=Timezone
('UTC')), 'macros': <module 'airflow.macros' from
'/home/airflow/.local/lib/python3.12/site-packages/airflow/macros/__init__.py'>,
'map_index_template': None, 'next_ds': '2025-09-12', 'next_ds_nodash':
'20250912', 'next_execution_date': DateTime(2025, 9, 12, 1, 28, 0,
tzinfo=Timezone('UTC')), 'outlets': [], 'params': {},
'prev_data_interval_start_success': DateTime(2025, 9, 12, 1, 26, 0,
tzinfo=Timezone('UTC')), 'prev_data_interval_end_success': DateTime(2025, 9,
12, 1, 26, 0, tzinfo=Timezone('UTC')), 'prev_ds': None, 'prev_ds_nodash': None,
'prev_execution_date': None, 'prev_execution_date_success': DateTime(2025, 9,
12, 1, 26, 0, tzinfo=Timezone('UTC')), 'prev_start_date_success':
DateTime(2025, 9, 12, 1, 26, 0, 319259, tzinfo=Timezone('UTC')),
'prev_end_date_success': DateTime(2025, 9, 12, 1, 26, 5, 42120,
tzinfo=Timezone('UTC')), 'run_id': 'scheduled__2025-09-12T01:27:00+00:00',
'task': <Task(PythonOperator): print_hello>, 'task_instance': <TaskInstance:
example_dag_callbacks.pr
int_hello scheduled__2025-09-12T01:27:00+00:00 [success]>,
'task_instance_key_str': 'example_dag_callbacks__print_hello__20250912',
'test_mode': False, 'ti': <TaskInstance: example_dag_callbacks.print_hello
scheduled__2025-09-12T01:27:00+00:00 [success]>, 'tomorrow_ds': '2025-09-13',
'tomorrow_ds_nodash': '20250913', 'triggering_dataset_events': <Proxy at
0x7fd1b6240d80 with factory <function
_get_template_context.<locals>.get_triggering_events at 0x7fd1b62347c0>>, 'ts':
'2025-09-12T01:27:00+00:00', 'ts_nodash': '20250912T012700',
'ts_nodash_with_tz': '20250912T012700+0000', 'var': {'json': None, 'value':
None}, 'conn': None, 'yesterday_ds': '2025-09-11', 'yesterday_ds_nodash':
'20250911', 'templates_dict': None},) kwargs={}",
"@log": "204412309905:halter-airflow-tasks"
},
{
"@timestamp": "2025-09-12 01:26:03.994",
"@message": "hello from ti success callback args=({'conf':
<airflow.configuration.AirflowConfigParser object at 0x7fd1c57eb890>, 'dag':
<DAG: example_dag_callbacks>, 'dag_run': <DagRun example_dag_callbacks @
2025-09-12 01:26:00+00:00: scheduled__2025-09-12T01:26:00+00:00, state:running,
queued_at: 2025-09-12 01:26:00.277472+00:00. externally triggered: False>,
'data_interval_end': DateTime(2025, 9, 12, 1, 26, 0, tzinfo=Timezone('UTC')),
'data_interval_start': DateTime(2025, 9, 12, 1, 26, 0, tzinfo=Timezone('UTC')),
'outlet_events': <airflow.utils.context.OutletEventAccessors object at
0x7fd1b6211880>, 'ds': '2025-09-12', 'ds_nodash': '20250912', 'execution_date':
DateTime(2025, 9, 12, 1, 26, 0, tzinfo=Timezone('UTC')), 'expanded_ti_count':
None, 'inlets': [], 'inlet_events': InletEventsAccessors(_inlets=[],
_datasets={}, _dataset_aliases={}, _session=<sqlalchemy.orm.session.Session
object at 0x7fd1c50ac740>), 'logical_date': DateTime(2025, 9, 12, 1, 26, 0,
tzinfo=Timezone
('UTC')), 'macros': <module 'airflow.macros' from
'/home/airflow/.local/lib/python3.12/site-packages/airflow/macros/__init__.py'>,
'map_index_template': None, 'next_ds': '2025-09-12', 'next_ds_nodash':
'20250912', 'next_execution_date': DateTime(2025, 9, 12, 1, 27, 0,
tzinfo=Timezone('UTC')), 'outlets': [], 'params': {},
'prev_data_interval_start_success': DateTime(2025, 9, 12, 1, 25, 0,
tzinfo=Timezone('UTC')), 'prev_data_interval_end_success': DateTime(2025, 9,
12, 1, 25, 0, tzinfo=Timezone('UTC')), 'prev_ds': None, 'prev_ds_nodash': None,
'prev_execution_date': None, 'prev_execution_date_success': DateTime(2025, 9,
12, 1, 25, 0, tzinfo=Timezone('UTC')), 'prev_start_date_success':
DateTime(2025, 9, 12, 1, 25, 1, 202145, tzinfo=Timezone('UTC')),
'prev_end_date_success': DateTime(2025, 9, 12, 1, 25, 6, 853336,
tzinfo=Timezone('UTC')), 'run_id': 'scheduled__2025-09-12T01:26:00+00:00',
'task': <Task(PythonOperator): print_hello>, 'task_instance': <TaskInstance:
example_dag_callbacks.p
rint_hello scheduled__2025-09-12T01:26:00+00:00 [success]>,
'task_instance_key_str': 'example_dag_callbacks__print_hello__20250912',
'test_mode': False, 'ti': <TaskInstance: example_dag_callbacks.print_hello
scheduled__2025-09-12T01:26:00+00:00 [success]>, 'tomorrow_ds': '2025-09-13',
'tomorrow_ds_nodash': '20250913', 'triggering_dataset_events': <Proxy at
0x7fd1b6241380 with factory <function
_get_template_context.<locals>.get_triggering_events at 0x7fd1b6234ae0>>, 'ts':
'2025-09-12T01:26:00+00:00', 'ts_nodash': '20250912T012600',
'ts_nodash_with_tz': '20250912T012600+0000', 'var': {'json': None, 'value':
None}, 'conn': None, 'yesterday_ds': '2025-09-11', 'yesterday_ds_nodash':
'20250911', 'templates_dict': None},) kwargs={}",
"@log": "204412309905:halter-airflow-tasks"
},
{
"@timestamp": "2025-09-12 01:25:05.463",
"@message": "hello from ti success callback args=({'conf':
<airflow.configuration.AirflowConfigParser object at 0x7fd1c57eb890>, 'dag':
<DAG: example_dag_callbacks>, 'dag_run': <DagRun example_dag_callbacks @
2025-09-12 01:25:00+00:00: scheduled__2025-09-12T01:25:00+00:00, state:running,
queued_at: 2025-09-12 01:25:01.064088+00:00. externally triggered: False>,
'data_interval_end': DateTime(2025, 9, 12, 1, 25, 0, tzinfo=Timezone('UTC')),
'data_interval_start': DateTime(2025, 9, 12, 1, 25, 0, tzinfo=Timezone('UTC')),
'outlet_events': <airflow.utils.context.OutletEventAccessors object at
0x7fd1b6212180>, 'ds': '2025-09-12', 'ds_nodash': '20250912', 'execution_date':
DateTime(2025, 9, 12, 1, 25, 0, tzinfo=Timezone('UTC')), 'expanded_ti_count':
None, 'inlets': [], 'inlet_events': InletEventsAccessors(_inlets=[],
_datasets={}, _dataset_aliases={}, _session=<sqlalchemy.orm.session.Session
object at 0x7fd1c50ae750>), 'logical_date': DateTime(2025, 9, 12, 1, 25, 0,
tzinfo=Timezone
('UTC')), 'macros': <module 'airflow.macros' from
'/home/airflow/.local/lib/python3.12/site-packages/airflow/macros/__init__.py'>,
'map_index_template': None, 'next_ds': '2025-09-12', 'next_ds_nodash':
'20250912', 'next_execution_date': DateTime(2025, 9, 12, 1, 26, 0,
tzinfo=Timezone('UTC')), 'outlets': [], 'params': {},
'prev_data_interval_start_success': DateTime(2025, 9, 12, 1, 24, 0,
tzinfo=Timezone('UTC')), 'prev_data_interval_end_success': DateTime(2025, 9,
12, 1, 24, 0, tzinfo=Timezone('UTC')), 'prev_ds': None, 'prev_ds_nodash': None,
'prev_execution_date': None, 'prev_execution_date_success': DateTime(2025, 9,
12, 1, 24, 0, tzinfo=Timezone('UTC')), 'prev_start_date_success':
DateTime(2025, 9, 12, 1, 24, 0, 354869, tzinfo=Timezone('UTC')),
'prev_end_date_success': DateTime(2025, 9, 12, 1, 24, 4, 676365,
tzinfo=Timezone('UTC')), 'run_id': 'scheduled__2025-09-12T01:25:00+00:00',
'task': <Task(PythonOperator): print_hello>, 'task_instance': <TaskInstance:
example_dag_callbacks.p
rint_hello scheduled__2025-09-12T01:25:00+00:00 [success]>,
'task_instance_key_str': 'example_dag_callbacks__print_hello__20250912',
'test_mode': False, 'ti': <TaskInstance: example_dag_callbacks.print_hello
scheduled__2025-09-12T01:25:00+00:00 [success]>, 'tomorrow_ds': '2025-09-13',
'tomorrow_ds_nodash': '20250913', 'triggering_dataset_events': <Proxy at
0x7fd1b6240ec0 with factory <function
_get_template_context.<locals>.get_triggering_events at 0x7fd1b62347c0>>, 'ts':
'2025-09-12T01:25:00+00:00', 'ts_nodash': '20250912T012500',
'ts_nodash_with_tz': '20250912T012500+0000', 'var': {'json': None, 'value':
None}, 'conn': None, 'yesterday_ds': '2025-09-11', 'yesterday_ds_nodash':
'20250911', 'templates_dict': None},) kwargs={}",
"@log": "204412309905:halter-airflow-tasks"
},
{
"@timestamp": "2025-09-12 01:24:03.980",
"@message": "hello from ti success callback args=({'conf':
<airflow.configuration.AirflowConfigParser object at 0x7fd1c57eb890>, 'dag':
<DAG: example_dag_callbacks>, 'dag_run': <DagRun example_dag_callbacks @
2025-09-12 01:24:00+00:00: scheduled__2025-09-12T01:24:00+00:00, state:running,
queued_at: 2025-09-12 01:24:00.287914+00:00. externally triggered: False>,
'data_interval_end': DateTime(2025, 9, 12, 1, 24, 0, tzinfo=Timezone('UTC')),
'data_interval_start': DateTime(2025, 9, 12, 1, 24, 0, tzinfo=Timezone('UTC')),
'outlet_events': <airflow.utils.context.OutletEventAccessors object at
0x7fd1b6213bc0>, 'ds': '2025-09-12', 'ds_nodash': '20250912', 'execution_date':
DateTime(2025, 9, 12, 1, 24, 0, tzinfo=Timezone('UTC')), 'expanded_ti_count':
None, 'inlets': [], 'inlet_events': InletEventsAccessors(_inlets=[],
_datasets={}, _dataset_aliases={}, _session=<sqlalchemy.orm.session.Session
object at 0x7fd1c50ad970>), 'logical_date': DateTime(2025, 9, 12, 1, 24, 0,
tzinfo=Timezone
('UTC')), 'macros': <module 'airflow.macros' from
'/home/airflow/.local/lib/python3.12/site-packages/airflow/macros/__init__.py'>,
'map_index_template': None, 'next_ds': '2025-09-12', 'next_ds_nodash':
'20250912', 'next_execution_date': DateTime(2025, 9, 12, 1, 25, 0,
tzinfo=Timezone('UTC')), 'outlets': [], 'params': {},
'prev_data_interval_start_success': DateTime(2025, 9, 12, 1, 23, 0,
tzinfo=Timezone('UTC')), 'prev_data_interval_end_success': DateTime(2025, 9,
12, 1, 23, 0, tzinfo=Timezone('UTC')), 'prev_ds': None, 'prev_ds_nodash': None,
'prev_execution_date': None, 'prev_execution_date_success': DateTime(2025, 9,
12, 1, 23, 0, tzinfo=Timezone('UTC')), 'prev_start_date_success':
DateTime(2025, 9, 12, 1, 23, 18, 143264, tzinfo=Timezone('UTC')),
'prev_end_date_success': DateTime(2025, 9, 12, 1, 23, 21, 813414,
tzinfo=Timezone('UTC')), 'run_id': 'scheduled__2025-09-12T01:24:00+00:00',
'task': <Task(PythonOperator): print_hello>, 'task_instance': <TaskInstance:
example_dag_callbacks
.print_hello scheduled__2025-09-12T01:24:00+00:00 [success]>,
'task_instance_key_str': 'example_dag_callbacks__print_hello__20250912',
'test_mode': False, 'ti': <TaskInstance: example_dag_callbacks.print_hello
scheduled__2025-09-12T01:24:00+00:00 [success]>, 'tomorrow_ds': '2025-09-13',
'tomorrow_ds_nodash': '20250913', 'triggering_dataset_events': <Proxy at
0x7fd1b6241000 with factory <function
_get_template_context.<locals>.get_triggering_events at 0x7fd1b62347c0>>, 'ts':
'2025-09-12T01:24:00+00:00', 'ts_nodash': '20250912T012400',
'ts_nodash_with_tz': '20250912T012400+0000', 'var': {'json': None, 'value':
None}, 'conn': None, 'yesterday_ds': '2025-09-11', 'yesterday_ds_nodash':
'20250911', 'templates_dict': None},) kwargs={}",
"@log": "204412309905:halter-airflow-tasks"
},
{
"@timestamp": "2025-09-12 01:23:21.081",
"@message": "hello from ti success callback args=({'conf':
<airflow.configuration.AirflowConfigParser object at 0x7fd1c57eb890>, 'dag':
<DAG: example_dag_callbacks>, 'dag_run': <DagRun example_dag_callbacks @
2025-09-12 01:23:00+00:00: scheduled__2025-09-12T01:23:00+00:00, state:running,
queued_at: 2025-09-12 01:23:18.071435+00:00. externally triggered: False>,
'data_interval_end': DateTime(2025, 9, 12, 1, 23, 0, tzinfo=Timezone('UTC')),
'data_interval_start': DateTime(2025, 9, 12, 1, 23, 0, tzinfo=Timezone('UTC')),
'outlet_events': <airflow.utils.context.OutletEventAccessors object at
0x7fd1b621f710>, 'ds': '2025-09-12', 'ds_nodash': '20250912', 'execution_date':
DateTime(2025, 9, 12, 1, 23, 0, tzinfo=Timezone('UTC')), 'expanded_ti_count':
None, 'inlets': [], 'inlet_events': InletEventsAccessors(_inlets=[],
_datasets={}, _dataset_aliases={}, _session=<sqlalchemy.orm.session.Session
object at 0x7fd1b63dec00>), 'logical_date': DateTime(2025, 9, 12, 1, 23, 0,
tzinfo=Timezone
('UTC')), 'macros': <module 'airflow.macros' from
'/home/airflow/.local/lib/python3.12/site-packages/airflow/macros/__init__.py'>,
'map_index_template': None, 'next_ds': '2025-09-12', 'next_ds_nodash':
'20250912', 'next_execution_date': DateTime(2025, 9, 12, 1, 24, 0,
tzinfo=Timezone('UTC')), 'outlets': [], 'params': {},
'prev_data_interval_start_success': None, 'prev_data_interval_end_success':
None, 'prev_ds': None, 'prev_ds_nodash': None, 'prev_execution_date': None,
'prev_execution_date_success': None, 'prev_start_date_success': None,
'prev_end_date_success': None, 'run_id':
'scheduled__2025-09-12T01:23:00+00:00', 'task': <Task(PythonOperator):
print_hello>, 'task_instance': <TaskInstance: example_dag_callbacks.print_hello
scheduled__2025-09-12T01:23:00+00:00 [success]>, 'task_instance_key_str':
'example_dag_callbacks__print_hello__20250912', 'test_mode': False, 'ti':
<TaskInstance: example_dag_callbacks.print_hello
scheduled__2025-09-12T01:23:00+00:00 [success]>, 'tomorrow_ds':
'2025-09-13', 'tomorrow_ds_nodash': '20250913', 'triggering_dataset_events':
<Proxy at 0x7fd1b6240040 with factory <function
_get_template_context.<locals>.get_triggering_events at 0x7fd1b6234900>>, 'ts':
'2025-09-12T01:23:00+00:00', 'ts_nodash': '20250912T012300',
'ts_nodash_with_tz': '20250912T012300+0000', 'var': {'json': None, 'value':
None}, 'conn': None, 'yesterday_ds': '2025-09-11', 'yesterday_ds_nodash':
'20250911', 'templates_dict': None},) kwargs={}",
"@log": "204412309905:halter-airflow-tasks"
},
{
"@timestamp": "2025-09-12 01:15:13.704",
"@message": "hello from ti success callback args=({'conf':
<airflow.configuration.AirflowConfigParser object at 0x7fd1c57eb890>, 'dag':
<DAG: airflow_healthcheck>, 'dag_run': <DagRun airflow_healthcheck @ 2025-09-12
01:15:00+00:00: scheduled__2025-09-12T01:15:00+00:00, state:running, queued_at:
2025-09-12 01:15:00.431861+00:00. externally triggered: False>,
'data_interval_end': DateTime(2025, 9, 12, 1, 15, 0, tzinfo=Timezone('UTC')),
'data_interval_start': DateTime(2025, 9, 12, 1, 15, 0, tzinfo=Timezone('UTC')),
'outlet_events': <airflow.utils.context.OutletEventAccessors object at
0x7fd1b60dd610>, 'ds': '2025-09-12', 'ds_nodash': '20250912', 'execution_date':
DateTime(2025, 9, 12, 1, 15, 0, tzinfo=Timezone('UTC')), 'expanded_ti_count':
None, 'inlets': [], 'inlet_events': InletEventsAccessors(_inlets=[],
_datasets={}, _dataset_aliases={}, _session=<sqlalchemy.orm.session.Session
object at 0x7fd1c50ad100>), 'logical_date': DateTime(2025, 9, 12, 1, 15, 0,
tzinfo=Timezone('UT
C')), 'macros': <module 'airflow.macros' from
'/home/airflow/.local/lib/python3.12/site-packages/airflow/macros/__init__.py'>,
'map_index_template': None, 'next_ds': '2025-09-12', 'next_ds_nodash':
'20250912', 'next_execution_date': DateTime(2025, 9, 12, 1, 30, 0,
tzinfo=Timezone('UTC')), 'outlets': [], 'params': {},
'prev_data_interval_start_success': DateTime(2025, 9, 12, 1, 0, 0,
tzinfo=Timezone('UTC')), 'prev_data_interval_end_success': DateTime(2025, 9,
12, 1, 0, 0, tzinfo=Timezone('UTC')), 'prev_ds': None, 'prev_ds_nodash': None,
'prev_execution_date': None, 'prev_execution_date_success': DateTime(2025, 9,
12, 1, 0, 0, tzinfo=Timezone('UTC')), 'prev_start_date_success': DateTime(2025,
9, 12, 1, 0, 1, 348704, tzinfo=Timezone('UTC')), 'prev_end_date_success':
DateTime(2025, 9, 12, 1, 0, 25, 439440, tzinfo=Timezone('UTC')), 'run_id':
'scheduled__2025-09-12T01:15:00+00:00', 'task':
<Task(_PythonDecoratedOperator): report_dependency>, 'task_instance':
<TaskInstance: airflow_healthc
heck.report_dependency scheduled__2025-09-12T01:15:00+00:00 [success]>,
'task_instance_key_str': 'airflow_healthcheck__report_dependency__20250912',
'test_mode': False, 'ti': <TaskInstance: airflow_healthcheck.report_dependency
scheduled__2025-09-12T01:15:00+00:00 [success]>, 'tomorrow_ds': '2025-09-13',
'tomorrow_ds_nodash': '20250913', 'triggering_dataset_events': <Proxy at
0x7fd1b5502d80 with factory <function
_get_template_context.<locals>.get_triggering_events at 0x7fd1b60ab240>>, 'ts':
'2025-09-12T01:15:00+00:00', 'ts_nodash': '20250912T011500',
'ts_nodash_with_tz': '20250912T011500+0000', 'var': {'json': None, 'value':
None}, 'conn': None, 'yesterday_ds': '2025-09-11', 'yesterday_ds_nodash':
'20250911', 'templates_dict': None},) kwargs={}",
"@log": "204412309905:halter-airflow-tasks"
},
{
"@timestamp": "2025-09-12 01:15:13.704",
"@message": "hello from ti success callback
args[0]['dag'].on_success_callback=[<function publish_dag_run_event at
0x7fd1b6d772e0>]",
"@log": "204412309905:halter-airflow-tasks"
},
{
"@timestamp": "2025-09-12 01:15:08.842",
"@message": "hello from ti success callback args=({'conf':
<airflow.configuration.AirflowConfigParser object at 0x7fd1c57eb890>, 'dag':
<DAG: airflow_healthcheck>, 'dag_run': <DagRun airflow_healthcheck @ 2025-09-12
01:15:00+00:00: scheduled__2025-09-12T01:15:00+00:00, state:running, queued_at:
2025-09-12 01:15:00.431861+00:00. externally triggered: False>,
'data_interval_end': DateTime(2025, 9, 12, 1, 15, 0, tzinfo=Timezone('UTC')),
'data_interval_start': DateTime(2025, 9, 12, 1, 15, 0, tzinfo=Timezone('UTC')),
'outlet_events': <airflow.utils.context.OutletEventAccessors object at
0x7fd1b60dd5b0>, 'ds': '2025-09-12', 'ds_nodash': '20250912', 'execution_date':
DateTime(2025, 9, 12, 1, 15, 0, tzinfo=Timezone('UTC')), 'expanded_ti_count':
None, 'inlets': [], 'inlet_events': InletEventsAccessors(_inlets=[],
_datasets={}, _dataset_aliases={}, _session=<sqlalchemy.orm.session.Session
object at 0x7fd1c50ade80>), 'logical_date': DateTime(2025, 9, 12, 1, 15, 0,
tzinfo=Timezone('UT
C')), 'macros': <module 'airflow.macros' from
'/home/airflow/.local/lib/python3.12/site-packages/airflow/macros/__init__.py'>,
'map_index_template': None, 'next_ds': '2025-09-12', 'next_ds_nodash':
'20250912', 'next_execution_date': DateTime(2025, 9, 12, 1, 30, 0,
tzinfo=Timezone('UTC')), 'outlets': [], 'params': {},
'prev_data_interval_start_success': DateTime(2025, 9, 12, 1, 0, 0,
tzinfo=Timezone('UTC')), 'prev_data_interval_end_success': DateTime(2025, 9,
12, 1, 0, 0, tzinfo=Timezone('UTC')), 'prev_ds': None, 'prev_ds_nodash': None,
'prev_execution_date': None, 'prev_execution_date_success': DateTime(2025, 9,
12, 1, 0, 0, tzinfo=Timezone('UTC')), 'prev_start_date_success': DateTime(2025,
9, 12, 1, 0, 1, 348704, tzinfo=Timezone('UTC')), 'prev_end_date_success':
DateTime(2025, 9, 12, 1, 0, 25, 439440, tzinfo=Timezone('UTC')), 'run_id':
'scheduled__2025-09-12T01:15:00+00:00', 'task':
<Task(_PythonDecoratedOperator): report_scheduling_delay>, 'task_instance':
<TaskInstance: airflow_h
ealthcheck.report_scheduling_delay scheduled__2025-09-12T01:15:00+00:00
[success]>, 'task_instance_key_str':
'airflow_healthcheck__report_scheduling_delay__20250912', 'test_mode': False,
'ti': <TaskInstance: airflow_healthcheck.report_scheduling_delay
scheduled__2025-09-12T01:15:00+00:00 [success]>, 'tomorrow_ds': '2025-09-13',
'tomorrow_ds_nodash': '20250913', 'triggering_dataset_events': <Proxy at
0x7fd1b60fbf00 with factory <function
_get_template_context.<locals>.get_triggering_events at 0x7fd1b60a7600>>, 'ts':
'2025-09-12T01:15:00+00:00', 'ts_nodash': '20250912T011500',
'ts_nodash_with_tz': '20250912T011500+0000', 'var': {'json': None, 'value':
None}, 'conn': None, 'yesterday_ds': '2025-09-11', 'yesterday_ds_nodash':
'20250911', 'templates_dict': None},) kwargs={}",
"@log": "204412309905:halter-airflow-tasks"
},
{
"@timestamp": "2025-09-12 01:15:08.842",
"@message": "hello from ti success callback
args[0]['dag'].on_success_callback=[<function publish_dag_run_event at
0x7fd1b6d772e0>]",
"@log": "204412309905:halter-airflow-tasks"
}
]
```
### Operating System
Linux, Debian specifically (base python 3 slim bullseye image)
### Versions of Apache Airflow Providers
```
$ pip freeze | grep apache-airflow-providers
apache-airflow-providers-amazon==8.28.0
apache-airflow-providers-common-compat==1.2.0
apache-airflow-providers-common-io==1.4.0
apache-airflow-providers-common-sql==1.16.0
apache-airflow-providers-fab==1.3.0
apache-airflow-providers-ftp==3.11.0
apache-airflow-providers-http==4.13.0
apache-airflow-providers-imap==3.7.0
apache-airflow-providers-slack==8.9.0
apache-airflow-providers-smtp==1.8.0
apache-airflow-providers-sqlite==3.9.0
```
### Deployment
Other Docker-based deployment
### Deployment details
RDS metadb, Valkey/k8s broker, AWS ECS for all airflow hosts
(scheduler+worker+triggerer+webserver), CeleryExecutor.
### Anything else?
If anyone seen this before and knows what's wrong that's awesome! But to be
honest even just getting a pointer to where to look would be immensely helpful!
### Are you willing to submit PR?
- [x] 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]