2025-06-26T12:29:14.680362288Z ERROR: Exception in ASGI application
2025-06-26T12:29:14.680377828Z + Exception Group Traceback (most recent call last):
2025-06-26T12:29:14.680381098Z | File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 76, in collapse_excgroups
| yield
2025-06-26T12:29:14.680389248Z | File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 177, in __call__
2025-06-26T12:29:14.680394359Z | async with anyio.create_task_group() as task_group:
2025-06-26T12:29:14.680398799Z | ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 664, in __aexit__
2025-06-26T12:29:14.680405809Z | raise BaseExceptionGroup(
2025-06-26T12:29:14.680408149Z | ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
2025-06-26T12:29:14.680410699Z +-+---------------- 1 ----------------
2025-06-26T12:29:14.680414059Z | Traceback (most recent call last):
2025-06-26T12:29:14.680429020Z | File "/usr/local/lib/python3.12/site-packages/uvicorn/protocols/http/h11_impl.py", line 403, in run_asgi
2025-06-26T12:29:14.680431860Z | result = await app( # type: ignore[func-returns-value]
2025-06-26T12:29:14.680439070Z | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-06-26T12:29:14.680441630Z | File "/usr/local/lib/python3.12/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__
2025-06-26T12:29:14.680444030Z | return await self.app(scope, receive, send)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-06-26T12:29:14.680451290Z | File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
2025-06-26T12:29:14.680453670Z | await super().__call__(scope, receive, send)
2025-06-26T12:29:14.680456090Z | File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 112, in __call__
| await self.middleware_stack(scope, receive, send)
2025-06-26T12:29:14.680463170Z | File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
2025-06-26T12:29:14.680467310Z | raise exc
2025-06-26T12:29:14.680470341Z | File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
| await self.app(scope, receive, _send)
2025-06-26T12:29:14.680475901Z | File "/usr/local/lib/python3.12/site-packages/starlette/middleware/cors.py", line 85, in __call__
| await self.app(scope, receive, send)
2025-06-26T12:29:14.680482791Z | File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 176, in __call__
2025-06-26T12:29:14.680485741Z | with recv_stream, send_stream, collapse_excgroups():
2025-06-26T12:29:14.680488011Z | ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
2025-06-26T12:29:14.680496311Z | self.gen.throw(value)
2025-06-26T12:29:14.680501031Z | File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
2025-06-26T12:29:14.680507331Z | File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 178, in __call__
2025-06-26T12:29:14.680509762Z | response = await self.dispatch_func(request, call_next)
2025-06-26T12:29:14.680512702Z | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/hipposerve/api/soauth.py", line 36, in dispatch
2025-06-26T12:29:14.680517982Z | return await call_next(request)
2025-06-26T12:29:14.680524882Z | ^^^^^^^^^^^^^^^^^^^^^^^^
2025-06-26T12:29:14.680528252Z | File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 156, in call_next
2025-06-26T12:29:14.680531182Z | raise app_exc
2025-06-26T12:29:14.680533352Z | File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 141, in coro
2025-06-26T12:29:14.680535672Z | await self.app(scope, receive_or_disconnect, send_no_error)
2025-06-26T12:29:14.680539232Z | File "/usr/local/lib/python3.12/site-packages/starlette/middleware/authentication.py", line 48, in __call__
2025-06-26T12:29:14.680541863Z | await self.app(scope, receive, send)
2025-06-26T12:29:14.680545823Z | File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
2025-06-26T12:29:14.680549523Z | await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
2025-06-26T12:29:14.680553113Z | File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
2025-06-26T12:29:14.680555723Z | raise exc
2025-06-26T12:29:14.680558163Z | File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
2025-06-26T12:29:14.680563533Z | File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 714, in __call__
2025-06-26T12:29:14.680566173Z | await self.middleware_stack(scope, receive, send)
2025-06-26T12:29:14.680568923Z | File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 734, in app
2025-06-26T12:29:14.680572103Z | await route.handle(scope, receive, send)
2025-06-26T12:29:14.680575643Z | File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
| await self.app(scope, receive, send)
2025-06-26T12:29:14.680581573Z | File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
2025-06-26T12:29:14.680583884Z | await wrap_app_handling_exceptions(app, request)(scope, receive, send)
2025-06-26T12:29:14.680587484Z | File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
2025-06-26T12:29:14.680590924Z | raise exc
2025-06-26T12:29:14.680593654Z | File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
2025-06-26T12:29:14.680597014Z | await app(scope, receive, sender)
2025-06-26T12:29:14.680599994Z | File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
| response = await f(request)
2025-06-26T12:29:14.680604674Z | ^^^^^^^^^^^^^^^^
2025-06-26T12:29:14.680608454Z | File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
2025-06-26T12:29:14.680613244Z | raw_response = await run_endpoint_function(
2025-06-26T12:29:14.680615674Z | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-06-26T12:29:14.680619634Z | File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
| return await dependant.call(**values)
2025-06-26T12:29:14.680625794Z | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-06-26T12:29:14.680628005Z | File "/usr/local/lib/python3.12/site-packages/hipposerve/service/auth.py", line 58, in async_wrapper
| return await func(*args, **kwargs)
2025-06-26T12:29:14.680634005Z | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-06-26T12:29:14.680637485Z | File "/usr/local/lib/python3.12/site-packages/hipposerve/api/product.py", line 93, in complete_product
2025-06-26T12:29:14.680639845Z | success = await product.complete(
2025-06-26T12:29:14.680643385Z | ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/hipposerve/service/product.py", line 326, in complete
2025-06-26T12:29:14.680650945Z | response_headers=headers[file.name],
2025-06-26T12:29:14.680653405Z | ~~~~~~~^^^^^^^^^^^
| KeyError: 'mask.fits'
2025-06-26T12:29:14.680658885Z +------------------------------------
2025-06-26T12:29:14.680663006Z
2025-06-26T12:29:14.680665306Z During handling of the above exception, another exception occurred:
2025-06-26T12:29:14.680671236Z Traceback (most recent call last):
2025-06-26T12:29:14.680674076Z File "/usr/local/lib/python3.12/site-packages/uvicorn/protocols/http/h11_impl.py", line 403, in run_asgi
2025-06-26T12:29:14.680676436Z result = await app( # type: ignore[func-returns-value]
2025-06-26T12:29:14.680678746Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-06-26T12:29:14.680680976Z File "/usr/local/lib/python3.12/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__
2025-06-26T12:29:14.680684246Z return await self.app(scope, receive, send)
2025-06-26T12:29:14.680687216Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-06-26T12:29:14.680689406Z File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
2025-06-26T12:29:14.680692866Z await super().__call__(scope, receive, send)
2025-06-26T12:29:14.680695916Z File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 112, in __call__
await self.middleware_stack(scope, receive, send)
2025-06-26T12:29:14.680700727Z File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
2025-06-26T12:29:14.680707036Z raise exc
2025-06-26T12:29:14.680709497Z File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
2025-06-26T12:29:14.680711787Z await self.app(scope, receive, _send)
2025-06-26T12:29:14.680713967Z File "/usr/local/lib/python3.12/site-packages/starlette/middleware/cors.py", line 85, in __call__
2025-06-26T12:29:14.680717087Z await self.app(scope, receive, send)
2025-06-26T12:29:14.680720647Z File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 176, in __call__
with recv_stream, send_stream, collapse_excgroups():
2025-06-26T12:29:14.680725417Z ^^^^^^^^^^^^^^^^^^^^
2025-06-26T12:29:14.680728997Z File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
2025-06-26T12:29:14.680732627Z self.gen.throw(value)
File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
2025-06-26T12:29:14.680737487Z raise exc
2025-06-26T12:29:14.680740997Z File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 178, in __call__
2025-06-26T12:29:14.680743597Z response = await self.dispatch_func(request, call_next)
2025-06-26T12:29:14.680745797Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/hipposerve/api/soauth.py", line 36, in dispatch
return await call_next(request)
2025-06-26T12:29:14.680754598Z ^^^^^^^^^^^^^^^^^^^^^^^^
2025-06-26T12:29:14.680756768Z File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 156, in call_next
2025-06-26T12:29:14.680760418Z raise app_exc
2025-06-26T12:29:14.680763588Z File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 141, in coro
2025-06-26T12:29:14.680766658Z await self.app(scope, receive_or_disconnect, send_no_error)
2025-06-26T12:29:14.680768878Z File "/usr/local/lib/python3.12/site-packages/starlette/middleware/authentication.py", line 48, in __call__
await self.app(scope, receive, send)
2025-06-26T12:29:14.680773748Z File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
2025-06-26T12:29:14.680776648Z await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
2025-06-26T12:29:14.680779489Z File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
2025-06-26T12:29:14.680782638Z raise exc
2025-06-26T12:29:14.680785589Z File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
2025-06-26T12:29:14.680791379Z await app(scope, receive, sender)
2025-06-26T12:29:14.680793589Z File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 714, in __call__
2025-06-26T12:29:14.680795909Z await self.middleware_stack(scope, receive, send)
2025-06-26T12:29:14.680798129Z File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 734, in app
await route.handle(scope, receive, send)
2025-06-26T12:29:14.680803469Z File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
2025-06-26T12:29:14.680806599Z await self.app(scope, receive, send)
2025-06-26T12:29:14.680809599Z File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
2025-06-26T12:29:14.680811869Z await wrap_app_handling_exceptions(app, request)(scope, receive, send)
2025-06-26T12:29:14.680814659Z File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
2025-06-26T12:29:14.680817570Z raise exc
2025-06-26T12:29:14.680820810Z File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
2025-06-26T12:29:14.680823450Z await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
2025-06-26T12:29:14.680830100Z response = await f(request)
2025-06-26T12:29:14.680832590Z ^^^^^^^^^^^^^^^^
2025-06-26T12:29:14.680834960Z File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
2025-06-26T12:29:14.680839730Z raw_response = await run_endpoint_function(
2025-06-26T12:29:14.680843030Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-06-26T12:29:14.680845240Z File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
2025-06-26T12:29:14.680847580Z return await dependant.call(**values)
2025-06-26T12:29:14.680850870Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-06-26T12:29:14.680853890Z File "/usr/local/lib/python3.12/site-packages/hipposerve/service/auth.py", line 58, in async_wrapper
return await func(*args, **kwargs)
2025-06-26T12:29:14.680859620Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-06-26T12:29:14.680861820Z File "/usr/local/lib/python3.12/site-packages/hipposerve/api/product.py", line 93, in complete_product
2025-06-26T12:29:14.680865541Z success = await product.complete(
2025-06-26T12:29:14.680868011Z ^^^^^^^^^^^^^^^^^^^^^^^
2025-06-26T12:29:14.680870191Z File "/usr/local/lib/python3.12/site-packages/hipposerve/service/product.py", line 326, in complete
2025-06-26T12:29:14.680873161Z response_headers=headers[file.name],
~~~~~~~^^^^^^^^^^^
2025-06-26T12:29:14.680901672Z KeyError: 'mask.fits'```