Skip to content

Commit 6965eb0

Browse files
authored
fix: no attribute error (#69908)
per https://sentry-st.sentry.io/issues/5278445518/?project=1513938 the [original ](https://github.com/getsentry/sentry/pull/69612/files#diff-8d3b88dca1ecb2b3b416850d9e08dcff8dedbe1533bbc2e816b42af99e49a30aL343) code type-ignored the attr-defined. bringing that back here so we hopefully don't run into this issue again
1 parent 5480bb1 commit 6965eb0

File tree

1 file changed

+18
-4
lines changed

1 file changed

+18
-4
lines changed

src/sentry/api/serializers/models/alert_rule.py

+18-4
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@ def get_attrs(
333333
incident_map[incident.id] = serialize(incident, user=user)
334334

335335
serialized_alert_rules = serialize(alert_rules, user=user)
336-
serialized_map_by_id = {
336+
serialized_alert_rule_map_by_id = {
337337
serialized_alert["id"]: serialized_alert for serialized_alert in serialized_alert_rules
338338
}
339339

@@ -348,12 +348,26 @@ def get_attrs(
348348

349349
for item in item_list:
350350
item_id = str(item.id)
351-
if item_id in serialized_map_by_id:
352-
serialized_alert_rule = serialized_map_by_id[item_id]
351+
if item_id in serialized_alert_rule_map_by_id:
352+
# This is a metric alert rule
353+
serialized_alert_rule = serialized_alert_rule_map_by_id[item_id]
353354
if "latestIncident" in self.expand:
354-
serialized_alert_rule["latestIncident"] = incident_map.get(item.incident_id)
355+
# Eg. we _have_ an incident
356+
try:
357+
serialized_alert_rule["latestIncident"] = incident_map.get(item.incident_id)
358+
except AttributeError as e:
359+
logger.exception(
360+
"incident serialization error",
361+
extra={
362+
"exception": e,
363+
"alert_rule_id": item_id,
364+
"is_metric_alert": isinstance(item, AlertRule),
365+
"is_issue_alert": isinstance(item, Rule),
366+
},
367+
)
355368
results[item] = serialized_alert_rule
356369
elif item_id in serialized_issue_rule_map_by_id:
370+
# This is an issue alert rule
357371
results[item] = serialized_issue_rule_map_by_id[item_id]
358372
else:
359373
logger.error(

0 commit comments

Comments
 (0)