airflow

Why are the "Last Run" and "Next Run" the same date?


When we run the simple  dag in apache airflow the Last Run  and Next Run show same date why is that

dag = DAG(
    dag_id = '01_unscheduled',
    schedule_interval='@daily',
    start_date = dt.datetime(2025,12,27),
)

def hello_word():
    print('hello world asad')

task1 = BashOperator(
    task_id ='task1',
    bash_command='echo hello world',
    dag = dag
)

task1

Solution

  • Airflow does not run a DAG at the start_date. Instead, start_date tells Airflow from when it should start creating schedules. With @daily, Airflow waits for an entire day (a full data interval) to finish before it creates the first run.

    In your case, the run with logical date 2025-12-27 actually represents the work for the period 2025-12-27 00:00 → 2025-12-28 00:00. That run is only created after 2025-12-28 00:00. Until that moment, no DAG run has happened yet.

    Because no run has executed:

    So they look identical. Airflow is basically saying: “This is the first run I’m scheduling, but the time window for it hasn’t finished yet.”

    Once the day finishes and the scheduler creates the run, Last Run will move to that date and Next Run will advance to the following day.