Skip to content

Production error when partially revising a product #62

@JBorrow

Description

@JBorrow
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'```

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions