Skip to content

Tier 1 key error in QGX #178

Description

@maximusunc

I'm sending Aragorn creative queries through Tier 1 (Heartburn) and I caught this error in the Retriever logs (running locally):

And this happened a couple times, plus the mongodb batch write error that I documented in #177

retriever  | 2026-06-02T15:42:40.930+00:00   21 ERROR   2dcf4c0f Unhandled exception occured in QGX while processing Tier 1. See logs for details. retriever.utils.logs:exception():163
retriever  | Traceback (most recent call last):
retriever  |   File "<string>", line 1, in <module>
retriever  |   File "/usr/local/lib/python3.13/multiprocessing/spawn.py", line 122, in spawn_main
retriever  |     exitcode = _main(fd, parent_sentinel)
retriever  |   File "/usr/local/lib/python3.13/multiprocessing/spawn.py", line 135, in _main
retriever  |     return self._bootstrap(parent_sentinel)
retriever  |   File "/usr/local/lib/python3.13/multiprocessing/process.py", line 313, in _bootstrap
retriever  |     self.run()
retriever  |   File "/usr/local/lib/python3.13/multiprocessing/process.py", line 108, in run
retriever  |     self._target(*self._args, **self._kwargs)
retriever  |   File "/usr/src/app/.venv/lib/python3.13/site-packages/uvicorn/_subprocess.py", line 80, in subprocess_started
retriever  |     target(sockets=sockets)
retriever  |   File "/usr/src/app/.venv/lib/python3.13/site-packages/uvicorn/supervisors/multiprocess.py", line 63, in target
retriever  |     return self.real_target(sockets)
retriever  |   File "/usr/src/app/.venv/lib/python3.13/site-packages/uvicorn/server.py", line 65, in run
retriever  |     return asyncio.run(self.serve(sockets=sockets))
retriever  |   File "/usr/local/lib/python3.13/asyncio/runners.py", line 195, in run
retriever  |     return runner.run(main)
retriever  |   File "/usr/local/lib/python3.13/asyncio/runners.py", line 118, in run
retriever  |     return self._loop.run_until_complete(task)
retriever  |   File "/usr/src/app/.venv/lib/python3.13/site-packages/starlette/middleware/base.py", line 144, in coro
retriever  |     await self.app(scope, receive_or_disconnect, send_no_error)
retriever  |   File "/usr/src/app/.venv/lib/python3.13/site-packages/starlette/middleware/cors.py", line 85, in __call__
retriever  |     await self.app(scope, receive, send)
retriever  |   File "/usr/src/app/.venv/lib/python3.13/site-packages/starlette/middleware/exceptions.py", line 63, in __call__
retriever  |     await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
retriever  |   File "/usr/src/app/.venv/lib/python3.13/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
retriever  |     await app(scope, receive, sender)
retriever  |   File "/usr/src/app/.venv/lib/python3.13/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__
retriever  |     await self.app(scope, receive, send)
retriever  |   File "/usr/src/app/.venv/lib/python3.13/site-packages/starlette/routing.py", line 716, in __call__
retriever  |     await self.middleware_stack(scope, receive, send)
retriever  |   File "/usr/src/app/.venv/lib/python3.13/site-packages/starlette/routing.py", line 736, in app
retriever  |     await route.handle(scope, receive, send)
retriever  |   File "/usr/src/app/.venv/lib/python3.13/site-packages/starlette/routing.py", line 290, in handle
retriever  |     await self.app(scope, receive, send)
retriever  |   File "/usr/src/app/.venv/lib/python3.13/site-packages/fastapi/routing.py", line 123, in app
retriever  |     await wrap_app_handling_exceptions(app, request)(scope, receive, send)
retriever  |   File "/usr/src/app/.venv/lib/python3.13/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
retriever  |     await app(scope, receive, sender)
retriever  |   File "/usr/src/app/.venv/lib/python3.13/site-packages/fastapi/routing.py", line 110, in app
retriever  |     await response(scope, receive, send)
retriever  |   File "/usr/src/app/.venv/lib/python3.13/site-packages/starlette/responses.py", line 168, in __call__
retriever  |     await self.background()
retriever  |   File "/usr/src/app/.venv/lib/python3.13/site-packages/starlette/background.py", line 42, in __call__
retriever  |     await task()
retriever  |   File "/usr/src/app/.venv/lib/python3.13/site-packages/starlette/background.py", line 27, in __call__
retriever  |     await self.func(*self.args, **self.kwargs)
retriever  |   File "/usr/src/app/src/retriever/lookup/lookup.py", line 57, in async_lookup
retriever  |     status, response = await lookup(query)
retriever  |   File "/usr/src/app/src/retriever/lookup/lookup.py", line 132, in lookup
retriever  |     results, kgraph, aux_graphs, logs, _error = await query_handler.execute()
retriever  |   File "/usr/src/app/.venv/lib/python3.13/site-packages/opentelemetry/util/_decorator.py", line 71, in async_wrapper
retriever  |     return await func(*args, **kwargs)  # type: ignore
retriever  | > File "/usr/src/app/src/retriever/lookup/qgx.py", line 193, in execute
retriever  |     results.append(part.as_result(self.k_agraph))
retriever  |   File "/usr/src/app/src/retriever/lookup/partial.py", line 101, in as_result
retriever  |     for kedge_id in k_agraph[qedge_id][in_id][out_id]
retriever  | KeyError: 'MONDO:0005028'

Metadata

Metadata

Assignees

Labels

high priorityIssue is blocking something or must be solved ASAPqgxConcerns Retriever's interal QGX algorithm

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions