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
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:
Last Run still points to the first logical date Airflow plans to run
Next Run also points to that same logical date
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.