Skip to content

celery task failure handling still looks up repositories by their git url #3421

@MoralCode

Description

@MoralCode

Even though looking up repositories by their repo_git is no longer really the main way to do it (because the git url can change), the error handling process for celery tasks still does this:

repo = session.query(Repo).filter(Repo.repo_git == repo_git).one()

Logs
[augur]        | 2025-11-18 23:04:30 cd3ac88591d1 augur_collection_monitor[276] INFO Setting github repo core status to collecting for repo: https://github.com/moralcode/classclockapi
[augur]        | [2025-11-18 23:04:30,464: INFO/MainProcess] Task augur.tasks.github.detect_move.tasks.detect_github_repo_move_core[38307c62-7947-495d-ac2f-35d8bd2bb241] received
[augur]        | 2025-11-18 23:04:30 cd3ac88591d1 detect_github_repo_move_core[280] INFO Starting repo_move operation with https://github.com/moralcode/classclockapi
[augur]        | 2025-11-18 23:04:30 cd3ac88591d1 augur_collection_monitor[276] INFO Starting collection on 0 secondary repos
[augur]        | 2025-11-18 23:04:30 cd3ac88591d1 augur_collection_monitor[276] INFO Starting collection on 0 facade repos
[augur]        | 2025-11-18 23:04:30 cd3ac88591d1 detect_github_repo_move_core[280] INFO Pinging repo: https://github.com/moralcode/classclockapi
[augur]        | [2025-11-18 23:04:30,474: INFO/ForkPoolWorker-2] Task augur.tasks.start_tasks.augur_collection_monitor[bb2d2553-8919-4da8-ac60-e628d826b9c3] succeeded in 0.09832821798045188s: None
[augur]        | 2025-11-18 23:04:30 cd3ac88591d1 detect_github_repo_move_core[280] INFO Retrieved 1 github api keys for use
[augur]        | 2025-11-18 23:04:30 cd3ac88591d1 detect_github_repo_move_core[280] DEBUG Key used for request (masked): ghp_EA******kQm
[augur]        | 2025-11-18 23:04:30 cd3ac88591d1 analyze_commits_in_parallel[281] DEBUG Analyzing commit 1f9454ebee957364e9073378ad2562b37f9c0394 for repo_id=1
[augur]        | 2025-11-18 23:04:30 cd3ac88591d1 detect_github_repo_move_core[280] DEBUG Key used for request (masked): ghp_EA******kQm
[augur]        | 2025-11-18 23:04:30 cd3ac88591d1 detect_github_repo_move_core[280] INFO Updated repo for https://github.com/classclock/API
[augur]        | 
[augur]        | [2025-11-18 23:04:30,942: WARNING/ForkPoolWorker-2] 2025-11-18 23:04:30 cd3ac88591d1 core_task_failure[280] ERROR Task 38307c62-7947-495d-ac2f-35d8bd2bb241 raised exception: ERROR: Repo has moved! Resetting Collection!
[augur]        |  Traceback: Traceback (most recent call last):
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 453, in trace_task
[augur]        |     R = retval = fun(*args, **kwargs)
[augur]        |                  ^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 736, in __protected_call__
[augur]        |     return self.run(*args, **kwargs)
[augur]        |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/augur/tasks/github/detect_move/tasks.py", line 27, in detect_github_repo_move_core
[augur]        |     ping_github_for_repo_move(session, key_auth, repo, logger)
[augur]        |   File "/augur/augur/tasks/github/detect_move/core.py", line 89, in ping_github_for_repo_move
[augur]        |     raise Exception("ERROR: Repo has moved! Resetting Collection!")
[augur]        | Exception: ERROR: Repo has moved! Resetting Collection!
[augur]        | [2025-11-18 23:04:30,943: WARNING/ForkPoolWorker-2] 2025-11-18 23:04:30 cd3ac88591d1 core_task_failure[280] INFO Repo git: https://github.com/moralcode/classclockapi
[augur]        | [2025-11-18 23:04:30,955: WARNING/ForkPoolWorker-2] /augur/.venv/lib/python3.11/site-packages/celery/app/trace.py:662: RuntimeWarning: Exception raised outside body: NoResultFound('No row was found when one was required'):
[augur]        | Traceback (most recent call last):
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 453, in trace_task
[augur]        |     R = retval = fun(*args, **kwargs)
[augur]        |                  ^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 736, in __protected_call__
[augur]        |     return self.run(*args, **kwargs)
[augur]        |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/augur/tasks/github/detect_move/tasks.py", line 27, in detect_github_repo_move_core
[augur]        |     ping_github_for_repo_move(session, key_auth, repo, logger)
[augur]        |   File "/augur/augur/tasks/github/detect_move/core.py", line 89, in ping_github_for_repo_move
[augur]        |     raise Exception("ERROR: Repo has moved! Resetting Collection!")
[augur]        | Exception: ERROR: Repo has moved! Resetting Collection!
[augur]        | 
[augur]        | During handling of the above exception, another exception occurred:
[augur]        | 
[augur]        | Traceback (most recent call last):
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 470, in trace_task
[augur]        |     I, R, state, retval = on_error(task_request, exc)
[augur]        |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 381, in on_error
[augur]        |     R = I.handle_error_state(
[augur]        |         ^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 175, in handle_error_state
[augur]        |     return {
[augur]        |            ^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 233, in handle_failure
[augur]        |     task.on_failure(exc, req.id, req.args, req.kwargs, einfo)
[augur]        |   File "/augur/augur/tasks/init/celery_app.py", line 107, in on_failure
[augur]        |     self.augur_handle_task_failure(exc, task_id, repo_git, "core_task_failure")
[augur]        |   File "/augur/augur/tasks/init/celery_app.py", line 90, in augur_handle_task_failure
[augur]        |     repo = session.query(Repo).filter(Repo.repo_git == repo_git).one()
[augur]        |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/sqlalchemy/orm/query.py", line 2798, in one
[augur]        |     return self._iter().one()  # type: ignore
[augur]        |            ^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/sqlalchemy/engine/result.py", line 1827, in one
[augur]        |     return self._only_one_row(
[augur]        |            ^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/sqlalchemy/engine/result.py", line 760, in _only_one_row
[augur]        |     raise exc.NoResultFound(
[augur]        | sqlalchemy.exc.NoResultFound: No row was found when one was required
[augur]        | 
[augur]        |   warn(RuntimeWarning(
[augur]        | 
[augur]        | [2025-11-18 23:04:30,983: WARNING/ForkPoolWorker-2] 2025-11-18 23:04:30,983,983ms [PID: 280] core_task_failure [ERROR] Task 38307c62-7947-495d-ac2f-35d8bd2bb241 raised exception: No row was found when one was required
[augur]        |  Traceback: Traceback (most recent call last):
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 453, in trace_task
[augur]        |     R = retval = fun(*args, **kwargs)
[augur]        |                  ^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 736, in __protected_call__
[augur]        |     return self.run(*args, **kwargs)
[augur]        |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/augur/tasks/github/detect_move/tasks.py", line 27, in detect_github_repo_move_core
[augur]        |     ping_github_for_repo_move(session, key_auth, repo, logger)
[augur]        |   File "/augur/augur/tasks/github/detect_move/core.py", line 89, in ping_github_for_repo_move
[augur]        |     raise Exception("ERROR: Repo has moved! Resetting Collection!")
[augur]        | Exception: ERROR: Repo has moved! Resetting Collection!
[augur]        | 
[augur]        | During handling of the above exception, another exception occurred:
[augur]        | 
[augur]        | Traceback (most recent call last):
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 470, in trace_task
[augur]        |     I, R, state, retval = on_error(task_request, exc)
[augur]        |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 381, in on_error
[augur]        |     R = I.handle_error_state(
[augur]        |         ^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 175, in handle_error_state
[augur]        |     return {
[augur]        |            ^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 233, in handle_failure
[augur]        |     task.on_failure(exc, req.id, req.args, req.kwargs, einfo)
[augur]        |   File "/augur/augur/tasks/init/celery_app.py", line 107, in on_failure
[augur]        |     self.augur_handle_task_failure(exc, task_id, repo_git, "core_task_failure")
[augur]        |   File "/augur/augur/tasks/init/celery_app.py", line 90, in augur_handle_task_failure
[augur]        |     repo = session.query(Repo).filter(Repo.repo_git == repo_git).one()
[augur]        |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/sqlalchemy/orm/query.py", line 2798, in one
[augur]        |     return self._iter().one()  # type: ignore
[augur]        |            ^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/sqlalchemy/engine/result.py", line 1827, in one
[augur]        |     return self._only_one_row(
[augur]        |            ^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/sqlalchemy/engine/result.py", line 760, in _only_one_row
[augur]        |     raise exc.NoResultFound(
[augur]        | sqlalchemy.exc.NoResultFound: No row was found when one was required
[augur]        | [2025-11-18 23:04:30,983: WARNING/ForkPoolWorker-2] 2025-11-18 23:04:30 cd3ac88591d1 core_task_failure[280] ERROR Task 38307c62-7947-495d-ac2f-35d8bd2bb241 raised exception: No row was found when one was required
[augur]        |  Traceback: Traceback (most recent call last):
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 453, in trace_task
[augur]        |     R = retval = fun(*args, **kwargs)
[augur]        |                  ^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 736, in __protected_call__
[augur]        |     return self.run(*args, **kwargs)
[augur]        |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/augur/tasks/github/detect_move/tasks.py", line 27, in detect_github_repo_move_core
[augur]        |     ping_github_for_repo_move(session, key_auth, repo, logger)
[augur]        |   File "/augur/augur/tasks/github/detect_move/core.py", line 89, in ping_github_for_repo_move
[augur]        |     raise Exception("ERROR: Repo has moved! Resetting Collection!")
[augur]        | Exception: ERROR: Repo has moved! Resetting Collection!
[augur]        | 
[augur]        | During handling of the above exception, another exception occurred:
[augur]        | 
[augur]        | Traceback (most recent call last):
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 470, in trace_task
[augur]        |     I, R, state, retval = on_error(task_request, exc)
[augur]        |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 381, in on_error
[augur]        |     R = I.handle_error_state(
[augur]        |         ^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 175, in handle_error_state
[augur]        |     return {
[augur]        |            ^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 233, in handle_failure
[augur]        |     task.on_failure(exc, req.id, req.args, req.kwargs, einfo)
[augur]        |   File "/augur/augur/tasks/init/celery_app.py", line 107, in on_failure
[augur]        |     self.augur_handle_task_failure(exc, task_id, repo_git, "core_task_failure")
[augur]        |   File "/augur/augur/tasks/init/celery_app.py", line 90, in augur_handle_task_failure
[augur]        |     repo = session.query(Repo).filter(Repo.repo_git == repo_git).one()
[augur]        |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/sqlalchemy/orm/query.py", line 2798, in one
[augur]        |     return self._iter().one()  # type: ignore
[augur]        |            ^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/sqlalchemy/engine/result.py", line 1827, in one
[augur]        |     return self._only_one_row(
[augur]        |            ^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/sqlalchemy/engine/result.py", line 760, in _only_one_row
[augur]        |     raise exc.NoResultFound(
[augur]        | sqlalchemy.exc.NoResultFound: No row was found when one was required
[augur]        | [2025-11-18 23:04:30,983: WARNING/ForkPoolWorker-2] 2025-11-18 23:04:30,983,983ms [PID: 280] core_task_failure [INFO] Repo git: https://github.com/moralcode/classclockapi
[augur]        | [2025-11-18 23:04:30,983: WARNING/ForkPoolWorker-2] 2025-11-18 23:04:30 cd3ac88591d1 core_task_failure[280] INFO Repo git: https://github.com/moralcode/classclockapi
[augur]        | [2025-11-18 23:04:30,999: ERROR/MainProcess] Task handler raised error: NoResultFound('No row was found when one was required')
[augur]        | billiard.einfo.RemoteTraceback: 
[augur]        | """
[augur]        | Traceback (most recent call last):
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 453, in trace_task
[augur]        |     R = retval = fun(*args, **kwargs)
[augur]        |                  ^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 736, in __protected_call__
[augur]        |     return self.run(*args, **kwargs)
[augur]        |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/augur/tasks/github/detect_move/tasks.py", line 27, in detect_github_repo_move_core
[augur]        |     ping_github_for_repo_move(session, key_auth, repo, logger)
[augur]        |   File "/augur/augur/tasks/github/detect_move/core.py", line 89, in ping_github_for_repo_move
[augur]        |     raise Exception("ERROR: Repo has moved! Resetting Collection!")
[augur]        | Exception: ERROR: Repo has moved! Resetting Collection!
[augur]        | 
[augur]        | During handling of the above exception, another exception occurred:
[augur]        | 
[augur]        | Traceback (most recent call last):
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 470, in trace_task
[augur]        |     I, R, state, retval = on_error(task_request, exc)
[augur]        |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 381, in on_error
[augur]        |     R = I.handle_error_state(
[augur]        |         ^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 175, in handle_error_state
[augur]        |     return {
[augur]        |            ^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 233, in handle_failure
[augur]        |     task.on_failure(exc, req.id, req.args, req.kwargs, einfo)
[augur]        |   File "/augur/augur/tasks/init/celery_app.py", line 107, in on_failure
[augur]        |     self.augur_handle_task_failure(exc, task_id, repo_git, "core_task_failure")
[augur]        |   File "/augur/augur/tasks/init/celery_app.py", line 90, in augur_handle_task_failure
[augur]        |     repo = session.query(Repo).filter(Repo.repo_git == repo_git).one()
[augur]        |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/sqlalchemy/orm/query.py", line 2798, in one
[augur]        |     return self._iter().one()  # type: ignore
[augur]        |            ^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/sqlalchemy/engine/result.py", line 1827, in one
[augur]        |     return self._only_one_row(
[augur]        |            ^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/sqlalchemy/engine/result.py", line 760, in _only_one_row
[augur]        |     raise exc.NoResultFound(
[augur]        | sqlalchemy.exc.NoResultFound: No row was found when one was required
[augur]        | 
[augur]        | During handling of the above exception, another exception occurred:
[augur]        | 
[augur]        | Traceback (most recent call last):
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/billiard/pool.py", line 362, in workloop
[augur]        |     result = (True, prepare_result(fun(*args, **kwargs)))
[augur]        |                                    ^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 651, in fast_trace_task
[augur]        |     R, I, T, Rstr = tasks[task].__trace__(
[augur]        |                     ^^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 574, in trace_task
[augur]        |     I, _, _, _ = on_error(task_request, exc)
[augur]        |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 381, in on_error
[augur]        |     R = I.handle_error_state(
[augur]        |         ^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 175, in handle_error_state
[augur]        |     return {
[augur]        |            ^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 233, in handle_failure
[augur]        |     task.on_failure(exc, req.id, req.args, req.kwargs, einfo)
[augur]        |   File "/augur/augur/tasks/init/celery_app.py", line 107, in on_failure
[augur]        |     self.augur_handle_task_failure(exc, task_id, repo_git, "core_task_failure")
[augur]        |   File "/augur/augur/tasks/init/celery_app.py", line 90, in augur_handle_task_failure
[augur]        |     repo = session.query(Repo).filter(Repo.repo_git == repo_git).one()
[augur]        |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/sqlalchemy/orm/query.py", line 2798, in one
[augur]        |     return self._iter().one()  # type: ignore
[augur]        |            ^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/sqlalchemy/engine/result.py", line 1827, in one
[augur]        |     return self._only_one_row(
[augur]        |            ^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/sqlalchemy/engine/result.py", line 760, in _only_one_row
[augur]        |     raise exc.NoResultFound(
[augur]        | sqlalchemy.exc.NoResultFound: No row was found when one was required
[augur]        | """
[augur]        | 
[augur]        | The above exception was the direct cause of the following exception:
[augur]        | 
[augur]        | Traceback (most recent call last):
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/billiard/pool.py", line 362, in workloop
[augur]        |     result = (True, prepare_result(fun(*args, **kwargs)))
[augur]        |                                    ^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 651, in fast_trace_task
[augur]        |     R, I, T, Rstr = tasks[task].__trace__(
[augur]        |                     ^^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 574, in trace_task
[augur]        |     I, _, _, _ = on_error(task_request, exc)
[augur]        |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 381, in on_error
[augur]        |     R = I.handle_error_state(
[augur]        |         ^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 175, in handle_error_state
[augur]        |     return {
[augur]        |            ^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 233, in handle_failure
[augur]        |     task.on_failure(exc, req.id, req.args, req.kwargs, einfo)
[augur]        |   File "/augur/augur/tasks/init/celery_app.py", line 107, in on_failure
[augur]        |     self.augur_handle_task_failure(exc, task_id, repo_git, "core_task_failure")
[augur]        |   File "/augur/augur/tasks/init/celery_app.py", line 90, in augur_handle_task_failure
[augur]        |     repo = session.query(Repo).filter(Repo.repo_git == repo_git).one()
[augur]        |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/sqlalchemy/orm/query.py", line 2798, in one
[augur]        |     return self._iter().one()  # type: ignore
[augur]        |            ^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/sqlalchemy/engine/result.py", line 1827, in one
[augur]        |     return self._only_one_row(
[augur]        |            ^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/sqlalchemy/engine/result.py", line 760, in _only_one_row
[augur]        |     raise exc.NoResultFound(
[augur]        | sqlalchemy.exc.NoResultFound: No row was found when one was required
``
</details>

_Originally posted by @MoralCode in https://github.com/chaoss/augur/issues/3391#issuecomment-3552943675_
            

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