@@ -518,12 +518,8 @@ def save_error_events(
518
518
519
519
try :
520
520
with sentry_sdk .start_span (op = "event_manager.save.save_aggregate_fn" ):
521
- group_info = _save_aggregate (
522
- event = job ["event" ],
523
- job = job ,
524
- release = job ["release" ],
525
- received_timestamp = job ["received_timestamp" ],
526
- metric_tags = metric_tags ,
521
+ group_info = assign_event_to_group (
522
+ event = job ["event" ], job = job , metric_tags = metric_tags
527
523
)
528
524
job ["groups" ] = [group_info ]
529
525
except HashDiscarded as err :
@@ -1337,6 +1333,33 @@ def get_culprit(data: Mapping[str, Any]) -> str:
1337
1333
)
1338
1334
1339
1335
1336
+ def assign_event_to_group (event : Event , job : Job , metric_tags : MutableTags ) -> Optional [GroupInfo ]:
1337
+ project = event .project
1338
+
1339
+ primary_grouping_config = project .get_option ("sentry:grouping_config" )
1340
+ secondary_grouping_config = project .get_option ("sentry:secondary_grouping_config" )
1341
+ has_mobile_config = "mobile:2021-02-12" in [primary_grouping_config , secondary_grouping_config ]
1342
+
1343
+ if (
1344
+ features .has (
1345
+ "organizations:grouping-suppress-unnecessary-secondary-hash" ,
1346
+ project .organization ,
1347
+ )
1348
+ and not has_mobile_config
1349
+ ):
1350
+ group_info = None # placeholder for the updated logic
1351
+ else :
1352
+ group_info = _save_aggregate (
1353
+ event = event ,
1354
+ job = job ,
1355
+ release = job ["release" ],
1356
+ received_timestamp = job ["received_timestamp" ],
1357
+ metric_tags = metric_tags ,
1358
+ )
1359
+
1360
+ return group_info
1361
+
1362
+
1340
1363
def _save_aggregate (
1341
1364
event : Event ,
1342
1365
job : Job ,
0 commit comments