From 1b08af545bda9a2aace7a963fc8951bf6019050f Mon Sep 17 00:00:00 2001 From: "Valeriya(vchu)" <vchu@odoo.com> Date: Fri, 5 May 2023 08:03:42 +0000 Subject: [PATCH] [FIX] payment_adyen: stop logging stacktrace for invalid reference as Adyen sends the same notification data for POS and online payments that can not be distiguished, the webhook controller logs a stacktrace for every POS payment. If the payment_adyen is installed it generates noise in logs as the POS transaction can not be found in online payments. To clear the log we make missing transaction as warning to not log the stacktrace. task-2960381 closes odoo/odoo#120625 Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com> --- addons/payment_adyen/controllers/main.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/addons/payment_adyen/controllers/main.py b/addons/payment_adyen/controllers/main.py index b5f23b2722f7..09d0a69efb93 100644 --- a/addons/payment_adyen/controllers/main.py +++ b/addons/payment_adyen/controllers/main.py @@ -245,6 +245,11 @@ class AdyenController(http.Controller): acquirer_sudo = PaymentTransaction.sudo()._get_tx_from_feedback_data( 'adyen', notification_data ).acquirer_id # Find the acquirer based on the transaction + except ValidationError: + # Warn rather than log the traceback to avoid noise when a POS payment notification + # is received and the corresponding `payment.transaction` record is not found. + _logger.warning("unable to find the transaction; skipping to acknowledge") + else: if not self._verify_notification_signature( received_signature, notification_data, acquirer_sudo.adyen_hmac_key ): @@ -263,11 +268,13 @@ class AdyenController(http.Controller): notification_data['resultCode'] = 'Authorised' if success else 'Error' else: continue # Don't handle unsupported event codes and failed events - - # Handle the notification data as a regular feedback - PaymentTransaction.sudo()._handle_feedback_data('adyen', notification_data) - except ValidationError: # Acknowledge the notification to avoid getting spammed - _logger.exception("unable to handle the notification data; skipping to acknowledge") + try: + # Handle the notification data as a regular feedback + PaymentTransaction.sudo()._handle_feedback_data('adyen', notification_data) + except ValidationError: # Acknowledge the notification to avoid getting spammed + _logger.exception( + "unable to handle the notification data;skipping to acknowledge" + ) return '[accepted]' # Acknowledge the notification -- GitLab