Skip to content

Production error when partially revising a product #62

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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions