Skip to content

Commit 2a0915e

Browse files
committed
Fix: Need to read full message, can't return streaming
This fixes errors that looked like this: Traceback (most recent call last): File "/opt/miniconda3/envs/swea13/lib/python3.13/site-packages/uvicorn/protocols/http/h11_impl.py", line 406, in run_asgi result = await app( # type: ignore[func-returns-value] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ self.scope, self.receive, self.send ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File "/opt/miniconda3/envs/swea13/lib/python3.13/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__ return await self.app(scope, receive, send) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/miniconda3/envs/swea13/lib/python3.13/site-packages/fastapi/applications.py", line 1054, in __call__ await super().__call__(scope, receive, send) File "/opt/miniconda3/envs/swea13/lib/python3.13/site-packages/starlette/applications.py", line 113, in __call__ await self.middleware_stack(scope, receive, send) File "/opt/miniconda3/envs/swea13/lib/python3.13/site-packages/starlette/middleware/errors.py", line 187, in __call__ raise exc File "/opt/miniconda3/envs/swea13/lib/python3.13/site-packages/starlette/middleware/errors.py", line 165, in __call__ await self.app(scope, receive, _send) File "/opt/miniconda3/envs/swea13/lib/python3.13/site-packages/starlette/middleware/base.py", line 185, in __call__ with collapse_excgroups(): ~~~~~~~~~~~~~~~~~~^^ File "/opt/miniconda3/envs/swea13/lib/python3.13/contextlib.py", line 162, in __exit__ self.gen.throw(value) ~~~~~~~~~~~~~~^^^^^^^ File "/opt/miniconda3/envs/swea13/lib/python3.13/site-packages/starlette/_utils.py", line 82, in collapse_excgroups raise exc File "/opt/miniconda3/envs/swea13/lib/python3.13/site-packages/starlette/middleware/base.py", line 187, in __call__ response = await self.dispatch_func(request, call_next) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/fuchur/Documents/24/git_sync/swe-rex/src/swerex/server.py", line 92, in handle_request_id new_response = Response( content=body_stream(), ...<2 lines>... media_type=response.media_type, ) File "/opt/miniconda3/envs/swea13/lib/python3.13/site-packages/starlette/responses.py", line 43, in __init__ self.body = self.render(content) ~~~~~~~~~~~^^^^^^^^^ File "/opt/miniconda3/envs/swea13/lib/python3.13/site-packages/starlette/responses.py", line 51, in render return content.encode(self.charset) # type: ignore ^^^^^^^^^^^^^^ AttributeError: 'async_generator' object has no attribute 'encode'
1 parent f99d8c2 commit 2a0915e

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/swerex/server.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,12 +85,12 @@ async def handle_request_id(request: Request, call_next):
8585

8686
response = await call_next(request)
8787

88-
async def body_stream():
89-
async for chunk in response.body_iterator:
90-
yield chunk
88+
body_content = b""
89+
async for chunk in response.body_iterator:
90+
body_content += chunk
9191

9292
new_response = Response(
93-
content=body_stream(),
93+
content=body_content,
9494
status_code=response.status_code,
9595
headers=dict(response.headers),
9696
media_type=response.media_type,

0 commit comments

Comments
 (0)