Under which category would you file this issue?
Airflow Core
Apache Airflow version
3.1.8
What happened and how to reproduce it?
When ExternalTaskSensor logs its poke message, the datetime shown after on is serialized directly with datetime.isoformat().
Poking for DAG 'example_external_dag' on 2026-07-06T21:00:00+00:00 ...
In deployments configured with a non-UTC timezone, such as AIRFLOW__CORE__DEFAULT_TIMEZONE=Asia/Seoul, this can be confusing because task log timestamps may be shown in the configured/local timezone while the ExternalTaskSensor poke message still displays the external logical date in UTC.
Current code path
def _serialize_dttm_filter(dttm_filter):
return ",".join(dt.isoformat() for dt in dttm_filter)
Steps to reproduce
Configure Airflow with a non-UTC default timezone, for example Asia/Seoul.
Create a Dag with an ExternalTaskSensor waiting for another Dag.
Run the sensor task.
Observe the poke log message.
What you think should happen instead?
The poke log should make the timezone easier to understand, ideally by formatting the datetime consistently with Airflow's configured timezone or by otherwise making clear that the value is the external Dag run logical_date.
This would reduce confusion when operators compare the sensor poke log with Airflow UI timestamps or local operational time.
Operating System
No response
Deployment
None
Apache Airflow Provider(s)
No response
Versions of Apache Airflow Providers
No response
Official Helm Chart version
Not Applicable
Kubernetes Version
No response
Helm Chart configuration
No response
Docker Image customizations
No response
Anything else?
No response
Are you willing to submit PR?
Code of Conduct
Under which category would you file this issue?
Airflow Core
Apache Airflow version
3.1.8
What happened and how to reproduce it?
When
ExternalTaskSensorlogs its poke message, the datetime shown afteronis serialized directly withdatetime.isoformat().In deployments configured with a non-UTC timezone, such as AIRFLOW__CORE__DEFAULT_TIMEZONE=Asia/Seoul, this can be confusing because task log timestamps may be shown in the configured/local timezone while the ExternalTaskSensor poke message still displays the external logical date in UTC.
Current code path
Steps to reproduce
Configure Airflow with a non-UTC default timezone, for example Asia/Seoul.
Create a Dag with an ExternalTaskSensor waiting for another Dag.
Run the sensor task.
Observe the poke log message.
What you think should happen instead?
The poke log should make the timezone easier to understand, ideally by formatting the datetime consistently with Airflow's configured timezone or by otherwise making clear that the value is the external Dag run
logical_date.This would reduce confusion when operators compare the sensor poke log with Airflow UI timestamps or local operational time.
Operating System
No response
Deployment
None
Apache Airflow Provider(s)
No response
Versions of Apache Airflow Providers
No response
Official Helm Chart version
Not Applicable
Kubernetes Version
No response
Helm Chart configuration
No response
Docker Image customizations
No response
Anything else?
No response
Are you willing to submit PR?
Code of Conduct