From 73af9b18eda513ebc8af1aee9456dee6837d77be Mon Sep 17 00:00:00 2001 From: Oliver Date: Tue, 2 Sep 2025 20:15:21 +1000 Subject: [PATCH] Error tweaks (#10250) * Refactor sentry checks * Refresh output from db before printing --- src/backend/InvenTree/InvenTree/sentry.py | 25 ++++++++++++++++------- src/backend/InvenTree/report/api.py | 2 ++ 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/backend/InvenTree/InvenTree/sentry.py b/src/backend/InvenTree/InvenTree/sentry.py index a050fbf71e..714b5292c9 100644 --- a/src/backend/InvenTree/InvenTree/sentry.py +++ b/src/backend/InvenTree/InvenTree/sentry.py @@ -72,11 +72,22 @@ def report_exception(exc, scope: Optional[dict] = None): 'report_exception should not be called in testing mode' ) - if settings.SENTRY_ENABLED and settings.SENTRY_DSN: - if not any(isinstance(exc, e) for e in sentry_ignore_errors()): - logger.info('Reporting exception to sentry.io: %s', exc) + # Skip if sentry not enabled, or not configured + if not settings.SENTRY_ENABLED or not settings.SENTRY_DSN: + return - try: - sentry_sdk.capture_exception(exc, scope=scope) - except Exception: - logger.warning('Failed to report exception to sentry.io') + # Skip if this error type is in the ignore list + if any(isinstance(exc, e) for e in sentry_ignore_errors()): + return + + # Error may also be passed in from the loggingn context + if hasattr(exc, 'event'): + event = getattr(exc, 'event', None) + + if any(isinstance(event, e) for e in sentry_ignore_errors()): + return + + try: + sentry_sdk.capture_exception(exc, scope=scope) + except Exception: + logger.warning('Failed to report exception to sentry.io') diff --git a/src/backend/InvenTree/report/api.py b/src/backend/InvenTree/report/api.py index 13378ce92f..ef29212aa9 100644 --- a/src/backend/InvenTree/report/api.py +++ b/src/backend/InvenTree/report/api.py @@ -207,6 +207,8 @@ class LabelPrint(GenericAPIView): output=None, ) + output.refresh_from_db() + offload_task( report.tasks.print_labels, template.pk,