atul-astronomer opened a new issue, #64247:
URL: https://github.com/apache/airflow/issues/64247

   ### Apache Airflow version
   
   3.2.0b2
   
   ### What happened and how to reproduce it?
   
   1. Start airflow instance on 3.2.0b2 tag.
   2. Hit dagStats endpoint providing any existing dag with dagrun created.
   3. Notice the error in API server logs
   
   ```typescript
   apiserver 2026-03-26T08:22:05.994000Z [info     ] request finished           
    [http.access] client_addr=223.181.117.126:0 duration_us=10592 
loc=http_access_log.py:98 method=GET path=/d6zsr5jn/api/v2/dagStats 
query='dag_ids=api_tests' request_id=64625ebe-e27b-479f-80c6-03213b859dd0 
status_code=500
   apiserver 2026-03-26T08:22:05.994259Z [error    ] Exception in ASGI 
application
   apiserver  [uvicorn.error] loc=httptools_impl.py:421
   apiserver   + Exception Group Traceback (most recent call last):
   apiserver   |   File 
"/usr/local/lib/python3.14/site-packages/starlette/_utils.py", line 81, in 
collapse_excgroups
   apiserver   |     yield
   apiserver   |   File 
"/usr/local/lib/python3.14/site-packages/starlette/middleware/base.py", line 
192, in __call__
   apiserver   |     async with anyio.create_task_group() as task_group:
   apiserver   |                ~~~~~~~~~~~~~~~~~~~~~~~^^
   apiserver   |   File 
"/usr/local/lib/python3.14/site-packages/anyio/_backends/_asyncio.py", line 
783, in __aexit__
   apiserver   |     raise BaseExceptionGroup(
   apiserver   |         "unhandled errors in a TaskGroup", self._exceptions
   apiserver   |     ) from None
   apiserver   | ExceptionGroup: unhandled errors in a TaskGroup (1 
sub-exception)
   apiserver   +-+---------------- 1 ----------------
   apiserver     | Traceback (most recent call last):
   apiserver     |   File 
"/usr/local/lib/python3.14/site-packages/uvicorn/protocols/http/httptools_impl.py",
 line 416, in run_asgi
   apiserver     |     result = await app(  # type: ignore[func-returns-value]
   apiserver     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   apiserver     |         self.scope, self.receive, self.send
   apiserver     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   apiserver     |     )
   apiserver     |     ^
   apiserver     |   File 
"/usr/local/lib/python3.14/site-packages/uvicorn/middleware/proxy_headers.py", 
line 60, in __call__
   apiserver     |     return await self.app(scope, receive, send)
   apiserver     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   apiserver     |   File 
"/usr/local/lib/python3.14/site-packages/fastapi/applications.py", line 1159, 
in __call__
   apiserver     |     await super().__call__(scope, receive, send)
   apiserver     |   File 
"/usr/local/lib/python3.14/site-packages/starlette/applications.py", line 107, 
in __call__
   apiserver     |     await self.middleware_stack(scope, receive, send)
   apiserver     |   File 
"/usr/local/lib/python3.14/site-packages/starlette/middleware/errors.py", line 
186, in __call__
   apiserver     |     raise exc
   apiserver     |   File 
"/usr/local/lib/python3.14/site-packages/starlette/middleware/errors.py", line 
164, in __call__
   apiserver     |     await self.app(scope, receive, _send)
   apiserver     |   File 
"/usr/local/lib/python3.14/site-packages/airflow/api_fastapi/common/http_access_log.py",
 line 83, in __call__
   apiserver     |     await self.app(scope, receive, capture_send)
   apiserver     |   File 
"/usr/local/lib/python3.14/site-packages/starlette/middleware/gzip.py", line 
29, in __call__
   apiserver     |     await responder(scope, receive, send)
   apiserver     |   File 
"/usr/local/lib/python3.14/site-packages/starlette/middleware/gzip.py", line 
130, in __call__
   apiserver     |     await super().__call__(scope, receive, send)
   apiserver     |   File 
"/usr/local/lib/python3.14/site-packages/starlette/middleware/gzip.py", line 
46, in __call__
   apiserver     |     await self.app(scope, receive, 
self.send_with_compression)
   apiserver     |   File 
"/usr/local/lib/python3.14/site-packages/starlette/middleware/base.py", line 
191, in __call__
   apiserver     |     with recv_stream, send_stream, collapse_excgroups():
   apiserver     |                                    ~~~~~~~~~~~~~~~~~~^^
   apiserver     |   File "/usr/local/lib/python3.14/contextlib.py", line 162, 
in __exit__
   apiserver     |     self.gen.throw(value)
   apiserver     |     ~~~~~~~~~~~~~~^^^^^^^
   apiserver     |   File 
"/usr/local/lib/python3.14/site-packages/starlette/_utils.py", line 87, in 
collapse_excgroups
   apiserver     |     raise exc
   apiserver     |   File 
"/usr/local/lib/python3.14/site-packages/starlette/middleware/base.py", line 
193, in __call__
   apiserver     |     response = await self.dispatch_func(request, call_next)
   apiserver     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   apiserver     |   File 
"/usr/local/lib/python3.14/site-packages/airflow/api_fastapi/auth/middlewares/refresh_token.py",
 line 61, in dispatch
   apiserver     |     response = await call_next(request)
   apiserver     |                ^^^^^^^^^^^^^^^^^^^^^^^^
   apiserver     |   File 
"/usr/local/lib/python3.14/site-packages/starlette/middleware/base.py", line 
168, in call_next
   apiserver     |     raise app_exc from app_exc.__cause__ or 
app_exc.__context__
   apiserver     |   File 
"/usr/local/lib/python3.14/site-packages/starlette/middleware/base.py", line 
144, in coro
   apiserver     |     await self.app(scope, receive_or_disconnect, 
send_no_error)
   apiserver     |   File 
"/usr/local/lib/python3.14/site-packages/starlette/middleware/base.py", line 
191, in __call__
   apiserver     |     with recv_stream, send_stream, collapse_excgroups():
   apiserver     |                                    ~~~~~~~~~~~~~~~~~~^^
   apiserver     |   File "/usr/local/lib/python3.14/contextlib.py", line 162, 
in __exit__
   apiserver     |     self.gen.throw(value)
   apiserver     |     ~~~~~~~~~~~~~~^^^^^^^
   apiserver     |   File 
"/usr/local/lib/python3.14/site-packages/starlette/_utils.py", line 87, in 
collapse_excgroups
   apiserver     |     raise exc
   apiserver     |   File 
"/usr/local/lib/python3.14/site-packages/starlette/middleware/base.py", line 
193, in __call__
   apiserver     |     response = await self.dispatch_func(request, call_next)
   apiserver     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   apiserver     |   File 
"/usr/local/lib/python3.14/site-packages/astronomer/runtime/plugin.py", line 
90, in dispatch
   apiserver     |     response = await call_next(request)
   apiserver     |                ^^^^^^^^^^^^^^^^^^^^^^^^
   apiserver     |   File 
"/usr/local/lib/python3.14/site-packages/starlette/middleware/base.py", line 
168, in call_next
   apiserver     |     raise app_exc from app_exc.__cause__ or 
app_exc.__context__
   apiserver     |   File 
"/usr/local/lib/python3.14/site-packages/starlette/middleware/base.py", line 
144, in coro
   apiserver     |     await self.app(scope, receive_or_disconnect, 
send_no_error)
   apiserver     |   File 
"/usr/local/lib/python3.14/site-packages/starlette/middleware/base.py", line 
191, in __call__
   apiserver     |     with recv_stream, send_stream, collapse_excgroups():
   apiserver     |                                    ~~~~~~~~~~~~~~~~~~^^
   apiserver     |   File "/usr/local/lib/python3.14/contextlib.py", line 162, 
in __exit__
   apiserver     |     self.gen.throw(value)
   apiserver     |     ~~~~~~~~~~~~~~^^^^^^^
   apiserver     |   File 
"/usr/local/lib/python3.14/site-packages/starlette/_utils.py", line 87, in 
collapse_excgroups
   apiserver     |     raise exc
   apiserver     |   File 
"/usr/local/lib/python3.14/site-packages/starlette/middleware/base.py", line 
193, in __call__
   apiserver     await self.app(scope, receive_or_disconnect, send_no_error)
   apiserver   File 
"/usr/local/lib/python3.14/site-packages/starlette/middleware/base.py", line 
191, in __call__
   apiserver     with recv_stream, send_stream, collapse_excgroups():
   apiserver                                    ~~~~~~~~~~~~~~~~~~^^
   apiserver   File "/usr/local/lib/python3.14/contextlib.py", line 162, in 
__exit__
   apiserver     self.gen.throw(value)
   apiserver     ~~~~~~~~~~~~~~^^^^^^^
   apiserver   File 
"/usr/local/lib/python3.14/site-packages/starlette/_utils.py", line 87, in 
collapse_excgroups
   apiserver     raise exc
   apiserver   File 
"/usr/local/lib/python3.14/site-packages/starlette/middleware/base.py", line 
193, in __call__
   apiserver     response = await self.dispatch_func(request, call_next)
   apiserver                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   apiserver   File 
"/usr/local/lib/python3.14/site-packages/astronomer/runtime/plugin.py", line 
90, in dispatch
   apiserver     response = await call_next(request)
   apiserver                ^^^^^^^^^^^^^^^^^^^^^^^^
   apiserver   File 
"/usr/local/lib/python3.14/site-packages/starlette/middleware/base.py", line 
168, in call_next
   apiserver     raise app_exc from app_exc.__cause__ or app_exc.__context__
   apiserver   File 
"/usr/local/lib/python3.14/site-packages/starlette/middleware/base.py", line 
144, in coro
   apiserver     await self.app(scope, receive_or_disconnect, send_no_error)
   apiserver   File 
"/usr/local/lib/python3.14/site-packages/starlette/middleware/base.py", line 
191, in __call__
   apiserver     with recv_stream, send_stream, collapse_excgroups():
   apiserver                                    ~~~~~~~~~~~~~~~~~~^^
   apiserver   File "/usr/local/lib/python3.14/contextlib.py", line 162, in 
__exit__
   apiserver     self.gen.throw(value)
   apiserver     ~~~~~~~~~~~~~~^^^^^^^
   apiserver   File 
"/usr/local/lib/python3.14/site-packages/starlette/_utils.py", line 87, in 
collapse_excgroups
   apiserver     raise exc
   apiserver   File 
"/usr/local/lib/python3.14/site-packages/starlette/middleware/base.py", line 
193, in __call__
   apiserver     response = await self.dispatch_func(request, call_next)
   apiserver                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   apiserver   File 
"/usr/local/airflow/plugins/plugins/AIP_68_plugins/fastapi_root_middlewares.py",
 line 6, in dispatch
   apiserver     response = await call_next(request)
   apiserver                ^^^^^^^^^^^^^^^^^^^^^^^^
   apiserver   File 
"/usr/local/lib/python3.14/site-packages/starlette/middleware/base.py", line 
168, in call_next
   apiserver     raise app_exc from app_exc.__cause__ or app_exc.__context__
   apiserver   File 
"/usr/local/lib/python3.14/site-packages/starlette/middleware/base.py", line 
144, in coro
   apiserver     await self.app(scope, receive_or_disconnect, send_no_error)
   apiserver   File 
"/usr/local/lib/python3.14/site-packages/starlette/middleware/exceptions.py", 
line 63, in __call__
   apiserver     await wrap_app_handling_exceptions(self.app, conn)(scope, 
receive, send)
   apiserver   File 
"/usr/local/lib/python3.14/site-packages/starlette/_exception_handler.py", line 
53, in wrapped_app
   apiserver     raise exc
   apiserver   File 
"/usr/local/lib/python3.14/site-packages/starlette/_exception_handler.py", line 
42, in wrapped_app
   apiserver     await app(scope, receive, sender)
   apiserver   File 
"/usr/local/lib/python3.14/site-packages/fastapi/middleware/asyncexitstack.py", 
line 18, in __call__
   apiserver     await self.app(scope, receive, send)
   apiserver   File 
"/usr/local/lib/python3.14/site-packages/starlette/routing.py", line 716, in 
__call__
   apiserver     await self.middleware_stack(scope, receive, send)
   apiserver   File 
"/usr/local/lib/python3.14/site-packages/starlette/routing.py", line 736, in app
   apiserver     await route.handle(scope, receive, send)
   apiserver   File 
"/usr/local/lib/python3.14/site-packages/starlette/routing.py", line 290, in 
handle
   apiserver     await self.app(scope, receive, send)
   apiserver   File 
"/usr/local/lib/python3.14/site-packages/fastapi/routing.py", line 134, in app
   apiserver     await wrap_app_handling_exceptions(app, request)(scope, 
receive, send)
   apiserver   File 
"/usr/local/lib/python3.14/site-packages/starlette/_exception_handler.py", line 
53, in wrapped_app
   apiserver     raise exc
   apiserver   File 
"/usr/local/lib/python3.14/site-packages/starlette/_exception_handler.py", line 
42, in wrapped_app
   apiserver     await app(scope, receive, sender)
   apiserver   File 
"/usr/local/lib/python3.14/site-packages/fastapi/routing.py", line 120, in app
   apiserver     response = await f(request)
   apiserver                ^^^^^^^^^^^^^^^^
   apiserver   File 
"/usr/local/lib/python3.14/site-packages/fastapi/routing.py", line 674, in app
   apiserver     raw_response = await run_endpoint_function(
   apiserver                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   apiserver     ...<3 lines>...
   apiserver     )
   apiserver     ^
   apiserver   File 
"/usr/local/lib/python3.14/site-packages/fastapi/routing.py", line 330, in 
run_endpoint_function
   apiserver     return await run_in_threadpool(dependant.call, **values)
   apiserver            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   apiserver   File 
"/usr/local/lib/python3.14/site-packages/starlette/concurrency.py", line 32, in 
run_in_threadpool
   apiserver     return await anyio.to_thread.run_sync(func)
   apiserver            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   apiserver   File 
"/usr/local/lib/python3.14/site-packages/anyio/to_thread.py", line 63, in 
run_sync
   apiserver     return await get_async_backend().run_sync_in_worker_thread(
   apiserver            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   apiserver         func, args, abandon_on_cancel=abandon_on_cancel, 
limiter=limiter
   apiserver         
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   apiserver     )
   apiserver     ^
   apiserver   File 
"/usr/local/lib/python3.14/site-packages/anyio/_backends/_asyncio.py", line 
2502, in run_sync_in_worker_thread
   apiserver     return await future
   apiserver            ^^^^^^^^^^^^
   apiserver   File 
"/usr/local/lib/python3.14/site-packages/anyio/_backends/_asyncio.py", line 
986, in run
   apiserver     result = context.run(func, *args)
   apiserver   File 
"/usr/local/lib/python3.14/site-packages/airflow/api_fastapi/core_api/routes/public/dag_stats.py",
 line 91, in get_dag_stats
   apiserver     DagStatsResponse(
   apiserver     ~~~~~~~~~~~~~~~~^
   apiserver         dag_id=dag_id,
   apiserver         ^^^^^^^^^^^^^^
   apiserver     ...<7 lines>...
   apiserver         ],
   apiserver         ^^
   apiserver     )
   apiserver     ^
   apiserver   File "/usr/local/lib/python3.14/site-packages/pydantic/main.py", 
line 250, in __init__
   apiserver     validated_self = 
self.__pydantic_validator__.validate_python(data, self_instance=self)
   apiserver pydantic_core._pydantic_core.ValidationError: 1 validation error 
for DagStatsResponse
   apiserver dag_display_name
   apiserver   Input should be a valid string [type=string_type, 
input_value=None, input_type=NoneType]
   ``` 
   
   ### What you think should happen instead?
   
   _No response_
   
   ### Operating System
   
   Linux
   
   ### Versions of Apache Airflow Providers
   
   _No response_
   
   ### Deployment
   
   Other
   
   ### Deployment details
   
   _No response_
   
   ### Anything else?
   
   _No response_
   
   ### Are you willing to submit PR?
   
   - [ ] 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]

Reply via email to