Skip to content

Fastapi 0.123.5 fails tests #58983

@potiuk

Description

@potiuk

Body

FastAPI 0.123.5 breaks system tests with:

  +-+---------------- 1 ----------------
    | Traceback (most recent call last):
    |   File "/usr/python/lib/python3.10/site-packages/starlette/middleware/errors.py", line 164, in __call__
    |     await self.app(scope, receive, _send)
    |   File "/usr/python/lib/python3.10/site-packages/starlette/middleware/base.py", line 191, in __call__
    |     with recv_stream, send_stream, collapse_excgroups():
    |   File "/usr/python/lib/python3.10/contextlib.py", line 153, in __exit__
    |     self.gen.throw(typ, value, traceback)
    |   File "/usr/python/lib/python3.10/site-packages/starlette/_utils.py", line 85, in collapse_excgroups
    |     raise exc
    |   File "/usr/python/lib/python3.10/site-packages/starlette/middleware/base.py", line 193, in __call__
    |     response = await self.dispatch_func(request, call_next)
    |   File "/opt/airflow/airflow-core/src/airflow/api_fastapi/execution_api/app.py", line 134, in dispatch
    |     response: Response = await call_next(request)
    |   File "/usr/python/lib/python3.10/site-packages/starlette/middleware/base.py", line 168, in call_next
    |     raise app_exc from app_exc.__cause__ or app_exc.__context__
    |   File "/usr/python/lib/python3.10/site-packages/starlette/middleware/base.py", line 144, in coro
    |     await self.app(scope, receive_or_disconnect, send_no_error)
    |   File "/usr/python/lib/python3.10/site-packages/starlette/middleware/base.py", line 191, in __call__
    |     with recv_stream, send_stream, collapse_excgroups():
    |   File "/usr/python/lib/python3.10/contextlib.py", line 153, in __exit__
    |     self.gen.throw(typ, value, traceback)
    |   File "/usr/python/lib/python3.10/site-packages/starlette/_utils.py", line 85, in collapse_excgroups
    |     raise exc
    |   File "/usr/python/lib/python3.10/site-packages/starlette/middleware/base.py", line 193, in __call__
    |     response = await self.dispatch_func(request, call_next)
    |   File "/opt/airflow/airflow-core/src/airflow/api_fastapi/execution_api/app.py", line 122, in dispatch
    |     response: Response = await call_next(request)
    |   File "/usr/python/lib/python3.10/site-packages/starlette/middleware/base.py", line 168, in call_next
    |     raise app_exc from app_exc.__cause__ or app_exc.__context__
    |   File "/usr/python/lib/python3.10/site-packages/starlette/middleware/base.py", line 144, in coro
    |     await self.app(scope, receive_or_disconnect, send_no_error)
    |   File "/usr/python/lib/python3.10/site-packages/starlette/middleware/base.py", line 191, in __call__
    |     with recv_stream, send_stream, collapse_excgroups():
    |   File "/usr/python/lib/python3.10/contextlib.py", line 153, in __exit__
    |     self.gen.throw(typ, value, traceback)
    |   File "/usr/python/lib/python3.10/site-packages/starlette/_utils.py", line 85, in collapse_excgroups
    |     raise exc
    |   File "/usr/python/lib/python3.10/site-packages/starlette/middleware/base.py", line 193, in __call__
    |     response = await self.dispatch_func(request, call_next)
    |   File "/usr/python/lib/python3.10/site-packages/cadwyn/middleware.py", line 124, in dispatch
    |     response = await call_next(request)
    |   File "/usr/python/lib/python3.10/site-packages/starlette/middleware/base.py", line 168, in call_next
    |     raise app_exc from app_exc.__cause__ or app_exc.__context__
    |   File "/usr/python/lib/python3.10/site-packages/starlette/middleware/base.py", line 144, in coro
    |     await self.app(scope, receive_or_disconnect, send_no_error)
    |   File "/usr/python/lib/python3.10/site-packages/starlette/middleware/exceptions.py", line 63, in __call__
    |     await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
    |   File "/usr/python/lib/python3.10/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
    |     raise exc
    |   File "/usr/python/lib/python3.10/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
    |     await app(scope, receive, sender)
    |   File "/usr/python/lib/python3.10/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__
    |     await self.app(scope, receive, send)
    |   File "/usr/python/lib/python3.10/site-packages/cadwyn/routing.py", line 93, in __call__
    |     await self.process_request(scope=scope, receive=receive, send=send, routes=routes)
    |   File "/usr/python/lib/python3.10/site-packages/cadwyn/routing.py", line 131, in process_request
    |     await route.handle(scope, receive, send)
    |   File "/usr/python/lib/python3.10/site-packages/starlette/routing.py", line 290, in handle
    |     await self.app(scope, receive, send)
    |   File "/usr/python/lib/python3.10/site-packages/fastapi/routing.py", line 119, in app
    |     await wrap_app_handling_exceptions(app, request)(scope, receive, send)
    |   File "/usr/python/lib/python3.10/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
    |     raise exc
    |   File "/usr/python/lib/python3.10/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
    |     await app(scope, receive, sender)
    |   File "/usr/python/lib/python3.10/site-packages/fastapi/routing.py", line 105, in app
    |     response = await f(request)
    |   File "/usr/python/lib/python3.10/site-packages/fastapi/routing.py", line 407, in app
    |     content = await serialize_response(
    |   File "/usr/python/lib/python3.10/site-packages/fastapi/routing.py", line 248, in serialize_response
    |     raise ResponseValidationError(
    | fastapi.exceptions.ResponseValidationError: 1 validation errors:
    |   {'type': 'model_attributes_type', 'loc': ('response',), 'msg': 'Input should be a valid dictionary or object to extract fields from', 'input': <coroutine object ti_run at 0x7f35577a15b0>}

Example here:

https://github.com/apache/airflow/actions/runs/19875061754/job/56961409679?pr=58976

Likely caused by this change: fastapi/fastapi#14434

Comment in the issue - needs further investigation, in the meantime we added != on the version in #58980

Committer

  • I acknowledge that I am a maintainer/committer of the Apache Airflow project.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:APIAirflow's REST/HTTP APIkind:bugThis is a clearly a bugkind:metaHigh-level information important to the community

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions