Skip to content

Log RTIF overwrite error with simpler context#63705

Merged
amoghrajesh merged 1 commit intoapache:mainfrom
astronomer:log-only-easier-fields-in-rtif
Mar 17, 2026
Merged

Log RTIF overwrite error with simpler context#63705
amoghrajesh merged 1 commit intoapache:mainfrom
astronomer:log-only-easier-fields-in-rtif

Conversation

@amoghrajesh
Copy link
Contributor


Was generative AI tooling used to co-author this PR?
  • Yes (please specify the tool below)

Recently, I made this fix:

In that fix, I wrapped SetRenderedFields call in finalize() with try/except to prevent API errors from masking the original task failure.

Noticed an issue during that:

Task failed with exception
CosmosDbtRunError: error here
File "/usr/local/lib/python3.12/site-packages/airflow/sdk/execution_time/task_runner.py", line 1112 in run

File "/usr/local/lib/python3.12/site-packages/airflow/sdk/execution_time/task_runner.py", line 1528 in _execute_task

File "/usr/local/astronomer-cosmos/cosmos/operators/base.py", line 342 in execute

File "/usr/local/astronomer-cosmos/cosmos/operators/local.py", line 895 in build_and_run_cmd

File "/usr/local/astronomer-cosmos/cosmos/operators/local.py", line 693 in run_command

File "/usr/local/astronomer-cosmos/cosmos/operators/local.py", line 273 in handle_exception_dbt_runner

File "/usr/local/astronomer-cosmos/cosmos/dbt/runner.py", line 151 in handle_exception_if_needed

[2026-03-12 20:58:50] ERROR - Top level error
RecursionError: maximum recursion depth exceeded
File "/usr/local/lib/python3.12/site-packages/airflow/sdk/execution_time/task_runner.py", line 1699 in main

File "/usr/local/lib/python3.12/site-packages/airflow/sdk/execution_time/task_runner.py", line 1629 in finalize

File "/usr/local/lib/python3.12/site-packages/structlog/_native.py", line 46 in exception

File "/usr/local/lib/python3.12/site-packages/airflow/sdk/_shared/logging/structlog.py", line 95 in meth

File "/usr/local/lib/python3.12/site-packages/structlog/_base.py", line 222 in _proxy_to_logger

File "/usr/local/lib/python3.12/site-packages/structlog/_base.py", line 173 in _process_event

File "/usr/local/lib/python3.12/site-packages/structlog/processors.py", line 353 in __call__

File "/usr/local/lib/python3.12/site-packages/airflow/sdk/_shared/logging/structlog.py", line 316 in json_dumps

File "/usr/local/lib/python3.12/site-packages/structlog/processors.py", line 369 in _json_fallback_handler

File "/usr/local/lib/python3.12/site-packages/pendulum/datetime.py", line 491 in __repr__

AttributeError: 'DateTime' object has no attribute '__structlog__'
File "/usr/local/lib/python3.12/site-packages/structlog/processors.py", line 367 in _json_fallback_handler

AirflowRuntimeError: API_SERVER_ERROR: {'status_code': 404, 'message': 'Not Found', 'detail': {'detail': 'Not Found'}}
File "/usr/local/lib/python3.12/site-packages/airflow/sdk/execution_time/task_runner.py", line 1627 in finalize

File "/usr/local/lib/python3.12/site-packages/airflow/sdk/execution_time/comms.py", line 206 in send

File "/usr/local/lib/python3.12/site-packages/airflow/sdk/execution_time/comms.py", line 270 in _get_response

File "/usr/local/lib/python3.12/site-packages/airflow/sdk/execution_time/comms.py", line 257 in _from_frame

[2026-03-12 20:58:50] WARNING - Process exited abnormally exit_code=1

The issue was that while logging the exception, there is some chance that complex operators might cause bloating of log context and cause serialization issues like above.

I am now logging errors with simpler context to avoid recursion issues from complex object serialization like dag_id and task_id which is good enough to debug the failures in logs like operator links does.


  • Read the Pull Request Guidelines for more information. Note: commit author/co-author name and email in commits become permanently public when merged.
  • For fundamental code changes, an Airflow Improvement Proposal (AIP) is needed.
  • When adding dependency, check compliance with the ASF 3rd Party License Policy.
  • For significant user-facing changes create newsfragment: {pr_number}.significant.rst, in airflow-core/newsfragments. You can add this file in a follow-up commit after the PR is created so you know the PR number.

@amoghrajesh amoghrajesh requested review from ashb and kaxil as code owners March 16, 2026 09:38
@amoghrajesh amoghrajesh requested a review from pankajkoti March 16, 2026 09:38
@amoghrajesh amoghrajesh self-assigned this Mar 16, 2026
@amoghrajesh amoghrajesh added this to the Airflow 3.1.9 milestone Mar 16, 2026
@amoghrajesh amoghrajesh changed the title Log rtif overwrite error with simpler context Log RTIF overwrite error with simpler context Mar 16, 2026
@amoghrajesh amoghrajesh removed this from the Airflow 3.1.9 milestone Mar 17, 2026
@amoghrajesh amoghrajesh merged commit d2d91e6 into apache:main Mar 17, 2026
106 checks passed
@amoghrajesh amoghrajesh deleted the log-only-easier-fields-in-rtif branch March 17, 2026 07:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants