Skip to content

fix(performance-detection): handle missing 'description' key in MN+1 DB span detector#119450

Draft
billyvg wants to merge 1 commit into
masterfrom
claude/serene-cannon-27m8h2
Draft

fix(performance-detection): handle missing 'description' key in MN+1 DB span detector#119450
billyvg wants to merge 1 commit into
masterfrom
claude/serene-cannon-27m8h2

Conversation

@billyvg

@billyvg billyvg commented Jul 11, 2026

Copy link
Copy Markdown
Member

Fixes a KeyError: 'description' crash (SENTRY-5QVD) that occurs in the MN+1 DB span detector when a DB span is missing the description field.

Problem

In mn_plus_one_db_span_detector.py, the _maybe_performance_problem method accessed db_span["description"] in two places (lines 258 and 283), raising a KeyError whenever a span arrives without that field. This was generating 212k+ error events in production (sentry region us, consumer process-segments).

Seer's analysis confirmed: "Use .get('description', '') to safely access the db span description."

Fix

Replace db_span["description"] with db_span.get("description", "") in both call sites:

  • desc= parameter of PerformanceProblem()
  • get_notification_attachment_body() call in evidence_display

This is safe because an empty string is the appropriate fallback for a missing description — no performance problem is skipped and no fingerprint logic is affected (the fingerprint uses db_span["hash"], not description).

Evidence

Legal Boilerplate

Look, I get it. The entity doing business as "Sentry" was incorporated in the State of Delaware in 2015 as Functional Software, Inc. and is gonna need some rights from me in order to utilize my contributions in this here PR. So here's the deal: I retain all rights, title and interest in and to my contributions, and by keeping this boilerplate intact I confirm that Sentry can use, modify, copy, and redistribute my contributions, under Sentry's choice of terms.


Generated by Claude Code

@github-actions github-actions Bot added the Scope: Backend Automatically applied to PRs that change backend components label Jul 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Scope: Backend Automatically applied to PRs that change backend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants