From 4bc0ad6bf59051335b50262f29e7979871ea16ab Mon Sep 17 00:00:00 2001 From: "seer-by-sentry[bot]" <157164994+seer-by-sentry[bot]@users.noreply.github.com> Date: Sat, 24 Jan 2026 18:56:09 +0000 Subject: [PATCH] fix(environments): Handle missing default environment in event processing --- src/sentry/services/eventstore/models.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/sentry/services/eventstore/models.py b/src/sentry/services/eventstore/models.py index 883fb10dd49b34..947c69a5c42cdd 100644 --- a/src/sentry/services/eventstore/models.py +++ b/src/sentry/services/eventstore/models.py @@ -178,10 +178,20 @@ def get_environment(self) -> Environment: from sentry.models.environment import Environment if not hasattr(self, "_environment_cache"): - self._environment_cache = Environment.get_for_organization_id( - organization_id=self.project.organization_id, - name=Environment.get_name_or_default(self.get_tag("environment")), - ) + name = Environment.get_name_or_default(self.get_tag("environment")) + organization_id = self.project.organization_id + try: + self._environment_cache = Environment.get_for_organization_id( + organization_id=organization_id, + name=name, + ) + except Environment.DoesNotExist: + # The Environment may not exist if this is the first event without an + # environment tag for this organization. Create it to avoid errors in + # post-processing steps that depend on get_environment(). + self._environment_cache = Environment.objects.get_or_create( + name=name, organization_id=organization_id + )[0] return self._environment_cache