From 33435d76871f941b0aa7c0cf4d798ca660aa65f2 Mon Sep 17 00:00:00 2001 From: Priscila Oliveira Date: Tue, 25 Feb 2025 06:34:18 +0100 Subject: [PATCH 1/2] ref(onboardingtasks): Add more instrumentation to help investigate bug --- .../api/endpoints/organization_onboarding_tasks.py | 11 ++++++++++- src/sentry/models/organizationonboardingtask.py | 10 ++-------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/sentry/api/endpoints/organization_onboarding_tasks.py b/src/sentry/api/endpoints/organization_onboarding_tasks.py index bdb047816d7dbf..39c252abfc740d 100644 --- a/src/sentry/api/endpoints/organization_onboarding_tasks.py +++ b/src/sentry/api/endpoints/organization_onboarding_tasks.py @@ -1,3 +1,4 @@ +import sentry_sdk from django.utils import timezone from rest_framework.request import Request from rest_framework.response import Response @@ -8,7 +9,7 @@ from sentry.api.base import region_silo_endpoint from sentry.api.bases.organization import OrganizationEndpoint, OrganizationPermission from sentry.api.serializers import serialize -from sentry.models.organizationonboardingtask import OnboardingTaskStatus +from sentry.models.organizationonboardingtask import OnboardingTask, OnboardingTaskStatus class OnboardingTaskPermission(OrganizationPermission): @@ -62,6 +63,14 @@ def post(self, request: Request, organization) -> Response: values=values, ) + if created and task_id == OnboardingTask.FIRST_PROJECT: + scope = sentry_sdk.get_current_scope() + scope.set_extra("org", organization.ids) + sentry_sdk.capture_message( + f"Onboarding task {task_id} was created unexpectedly. It should have been updated instead.", + level="warning", + ) + if rows_affected or created: onboarding_tasks.try_mark_onboarding_complete(organization.id) diff --git a/src/sentry/models/organizationonboardingtask.py b/src/sentry/models/organizationonboardingtask.py index 979d68493e6e69..05731075545e1a 100644 --- a/src/sentry/models/organizationonboardingtask.py +++ b/src/sentry/models/organizationonboardingtask.py @@ -64,6 +64,8 @@ def record(self, organization_id, task, **kwargs): try: with transaction.atomic(router.db_for_write(OrganizationOnboardingTask)): self.create(organization_id=organization_id, task=task, **kwargs) + # Store marker to prevent running all the time + cache.set(cache_key, 1, 3600) return True except IntegrityError as error: if task == OnboardingTask.FIRST_PROJECT: @@ -74,14 +76,6 @@ def record(self, organization_id, task, **kwargs): level="warning", ) pass - - # Store marker to prevent running all the time - cache.set(cache_key, 1, 3600) - if task == OnboardingTask.FIRST_PROJECT: - sentry_sdk.capture_message( - f"First project task not created for org {organization_id}, cache key {cache_key} set", - level="warning", - ) return False From 656f2da69512c3aa8bce96e83891f988912069ef Mon Sep 17 00:00:00 2001 From: Priscila Oliveira Date: Tue, 25 Feb 2025 08:23:18 +0100 Subject: [PATCH 2/2] fix typo --- src/sentry/api/endpoints/organization_onboarding_tasks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sentry/api/endpoints/organization_onboarding_tasks.py b/src/sentry/api/endpoints/organization_onboarding_tasks.py index 39c252abfc740d..e2044cc0c3a81e 100644 --- a/src/sentry/api/endpoints/organization_onboarding_tasks.py +++ b/src/sentry/api/endpoints/organization_onboarding_tasks.py @@ -65,7 +65,7 @@ def post(self, request: Request, organization) -> Response: if created and task_id == OnboardingTask.FIRST_PROJECT: scope = sentry_sdk.get_current_scope() - scope.set_extra("org", organization.ids) + scope.set_extra("org", organization.id) sentry_sdk.capture_message( f"Onboarding task {task_id} was created unexpectedly. It should have been updated instead.", level="warning",