fix(trace-explorer): Handle empty baseline cohort in ranked attributes API#106483
Merged
fix(trace-explorer): Handle empty baseline cohort in ranked attributes API#106483
Conversation
b9fa5ba to
6f55e94
Compare
6f55e94 to
a88e8da
Compare
aliu39
approved these changes
Jan 16, 2026
shruthilayaj
approved these changes
Jan 20, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Surfaced from SENTRY-555Z, but does not directly address its root cause
The
/api/0/organizations/{organization_id_or_slug}/trace-items/attributes/ranked/endpoint was returning a 500 error when the calculatedtotal_baselinewas zero or negative.This occurred because the downstream Seer service would encounter a
ZeroDivisionErrorwhen attempting Laplace smoothing with atotal_countof zero. Thetotal_baselinein Sentry becomes zero when the "outlier" cohort query matches all or more spans than the "baseline" cohort query.This change introduces an early return in the Sentry endpoint. If
total_baseline <= 0, the endpoint now returns a 200 OK response with an emptyrankedAttributeslist. The response shape now consistently includesrankingInfo,cohort1Total, andcohort2Totaleven in this early return case, providing a more complete and predictable API response to the frontend.This prevents 500 errors for users, provides a consistent API response, and avoids unnecessary calls to the Seer service when no meaningful comparison can be made.
closes AIML-2306: c.w. endpoint bug