diff --git a/src/murfey/server/feedback.py b/src/murfey/server/feedback.py index f58529da..e0fadf5e 100644 --- a/src/murfey/server/feedback.py +++ b/src/murfey/server/feedback.py @@ -25,6 +25,7 @@ from sqlalchemy import func from sqlalchemy.exc import ( InvalidRequestError, + NoResultFound, OperationalError, PendingRollbackError, SQLAlchemyError, @@ -2189,6 +2190,12 @@ def feedback_callback(header: dict, message: dict, _db=murfey_db) -> None: time.sleep(1) if murfey.server._transport_object: murfey.server._transport_object.transport.nack(header, requeue=True) + except NoResultFound: + # Missing rows might be due to a race condition and should be requeued + logger.warning("No matching database row was found", exc_info=True) + time.sleep(1) + if murfey.server._transport_object: + murfey.server._transport_object.transport.nack(header, requeue=True) except Exception: logger.warning( "Exception encountered in server RabbitMQ callback", exc_info=True