diff --git a/src/sentry/tasks/post_process.py b/src/sentry/tasks/post_process.py index e384e9be8b9b..7bd16131d91c 100644 --- a/src/sentry/tasks/post_process.py +++ b/src/sentry/tasks/post_process.py @@ -44,6 +44,7 @@ from sentry.utils.sdk_crashes.sdk_crash_detection_config import build_sdk_crash_detection_configs from sentry.utils.services import build_instance_from_options_of_type from sentry.utils.tracing import start_span, trace +from sentry.viewer_context import ActorType, ViewerContext, viewer_context_scope if TYPE_CHECKING: from sentry.eventstream.base import GroupState @@ -610,41 +611,48 @@ def get_event_raise_exception() -> Event: Organization.objects.get_from_cache(id=event.project.organization_id), ) - is_reprocessed = is_reprocessed_event(event.data) - sentry_sdk.set_tag("is_reprocessed", is_reprocessed) - sentry_sdk.set_attribute("is_reprocessed", is_reprocessed) - - metric_tags = {} - if group_id: - group_state: GroupState = { - "id": group_id, - "is_new": is_new, - "is_regression": bool(is_regression), - "is_new_group_environment": is_new_group_environment, - } + with viewer_context_scope( + ViewerContext( + organization_id=event.project.organization_id, + project_id=event.project_id, + actor_type=ActorType.SYSTEM, + ) + ): + is_reprocessed = is_reprocessed_event(event.data) + sentry_sdk.set_tag("is_reprocessed", is_reprocessed) + sentry_sdk.set_attribute("is_reprocessed", is_reprocessed) + + metric_tags = {} + if group_id: + group_state: GroupState = { + "id": group_id, + "is_new": is_new, + "is_regression": bool(is_regression), + "is_new_group_environment": is_new_group_environment, + } - group_event = update_event_group(event, group_state) - bind_organization_context(event.project.organization) - _capture_event_stats(event) + group_event = update_event_group(event, group_state) + bind_organization_context(event.project.organization) + _capture_event_stats(event) - group_event.occurrence = occurrence + group_event.occurrence = occurrence - run_post_process_job( - { - "event": group_event, - "group_state": group_state, - "is_reprocessed": is_reprocessed, - "has_reappeared": bool(not group_state["is_new"]), - "has_escalated": kwargs.get("has_escalated", False), - } - ) - metric_tags["occurrence_type"] = group_event.group.issue_type.slug + run_post_process_job( + { + "event": group_event, + "group_state": group_state, + "is_reprocessed": is_reprocessed, + "has_reappeared": bool(not group_state["is_new"]), + "has_escalated": kwargs.get("has_escalated", False), + } + ) + metric_tags["occurrence_type"] = group_event.group.issue_type.slug - track_event_since_received( - step="end_post_process", - event_data=event.data, - tags=metric_tags, - ) + track_event_since_received( + step="end_post_process", + event_data=event.data, + tags=metric_tags, + ) def run_post_process_job(job: PostProcessJob) -> None: