From 02eb4e8484ddeb2307942265d15f1dfbc01b6e36 Mon Sep 17 00:00:00 2001 From: Lukas Holecek Date: Wed, 11 Feb 2026 08:13:14 +0100 Subject: [PATCH] Avoid crashing listener on NotFound exception from Koji --- greenwave/listeners/base.py | 3 ++- greenwave/tests/test_listeners.py | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/greenwave/listeners/base.py b/greenwave/listeners/base.py index 3a79f38f..470cd01b 100644 --- a/greenwave/listeners/base.py +++ b/greenwave/listeners/base.py @@ -12,6 +12,7 @@ TraceContextTextMapPropagator, ) from requests.exceptions import HTTPError +from werkzeug.exceptions import HTTPException import greenwave.app_factory from greenwave.logger import init_logging, log_to_stdout @@ -249,7 +250,7 @@ def _old_and_new_decisions(self, submit_time, **request_data): old_decision = greenwave.decision.make_decision( request_data, self.app.config ) - except HTTPError as e: + except (HTTPError, HTTPException) as e: self.app.logger.exception( "Failed to retrieve decision for data=%s, error: %s", request_data, e ) diff --git a/greenwave/tests/test_listeners.py b/greenwave/tests/test_listeners.py index e648327d..7ff16a82 100644 --- a/greenwave/tests/test_listeners.py +++ b/greenwave/tests/test_listeners.py @@ -6,6 +6,7 @@ import pytest import stomp from requests.exceptions import HTTPError +from werkzeug.exceptions import NotFound from greenwave.app_factory import create_app from greenwave.listeners.resultsdb import ResultsDBListener @@ -356,6 +357,14 @@ def retrieve_decision(data, _config): HTTPError(), # type: ignore {"policies_satisfied": True}, ), + ( + NotFound(), + {"policies_satisfied": True}, + ), + ( + NotFound(), + NotFound(), + ), ), ) def test_decision_does_not_change(