From b7a43e26579d1dda324cb8716a349f9898a63f34 Mon Sep 17 00:00:00 2001 From: Gabe Villalobos Date: Mon, 13 Apr 2026 17:01:01 -0700 Subject: [PATCH 1/2] fix(np): Updates issue notification data factory to select correct handler class --- src/sentry/notifications/notification_action/utils.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/sentry/notifications/notification_action/utils.py b/src/sentry/notifications/notification_action/utils.py index 1962848e444f79..059c57541d1b11 100644 --- a/src/sentry/notifications/notification_action/utils.py +++ b/src/sentry/notifications/notification_action/utils.py @@ -113,13 +113,15 @@ def execute_via_metric_alert_handler(invocation: ActionInvocation) -> None: def issue_notification_data_factory(invocation: ActionInvocation) -> IssueNotificationData: - from sentry.notifications.notification_action.types import BaseIssueAlertHandler - action = invocation.action detector = invocation.detector event_data = invocation.event_data - rule_instance = BaseIssueAlertHandler.create_rule_instance_from_action( + handler = issue_alert_handler_registry.get(action.type) + if handler is None: + raise ValueError(f"No issue alert handler found for action type: {action.type}") + + rule_instance = handler.create_rule_instance_from_action( action=action, detector=detector, event_data=event_data, From c337c8610c79ef768f88e7bb9b1754f2018ac73b Mon Sep 17 00:00:00 2001 From: Gabe Villalobos Date: Tue, 14 Apr 2026 10:56:57 -0700 Subject: [PATCH 2/2] Removes dead handler None check --- src/sentry/notifications/notification_action/utils.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/sentry/notifications/notification_action/utils.py b/src/sentry/notifications/notification_action/utils.py index 059c57541d1b11..a193416796bbc6 100644 --- a/src/sentry/notifications/notification_action/utils.py +++ b/src/sentry/notifications/notification_action/utils.py @@ -118,9 +118,6 @@ def issue_notification_data_factory(invocation: ActionInvocation) -> IssueNotifi event_data = invocation.event_data handler = issue_alert_handler_registry.get(action.type) - if handler is None: - raise ValueError(f"No issue alert handler found for action type: {action.type}") - rule_instance = handler.create_rule_instance_from_action( action=action, detector=detector,