Skip to content

Bug: failure_rate / failure_rate_if causes 500 errors on Insights (dataset=spans) #103965

@piontas

Description

@piontas

Environment

self-hosted (https://develop.sentry.dev/self-hosted/)

Steps to Reproduce

Summary

When calling the Organization Events API with dataset=spans and requesting the field:

failure_rate_if(is_transaction,equals,true)

(or implicitly: failure_rate())

the Sentry backend returns HTTP 500 Internal Server Error, and Snuba RPC logs show a corresponding 500 on EndpointTraceItemTable/v1.

Removing this single field makes the same query succeed (HTTP 200).
This affects the Insights Frontend and Insights Backend landing tables, breaking UI functionality.
This occurs on a fresh Sentry Self-Hosted 25.11.0 installation and also reproducible on production running the same version.

Impact

  • Insights → Frontend "Landing Table" fails to load
  • Insights → Backend "Landing Table" fails to load

All queries including failure_rate_if(...) on dataset=spans reliably return 500
All other fields (tpm(), p50_if, performance_score, etc.) work normally
Removing only the failure-rate field makes the API return HTTP 200

Steps to Reproduce

Expected Result

✅ Working request (200)

GET /api/0/organizations/<org>/events/
  ?dataset=spans
  &field=is_starred_transaction
  &field=transaction
  &field=project
  &field=tpm()
  &field=p50_if(span.duration,is_transaction,equals,true)
  &field=p75_if(span.duration,is_transaction,equals,true)
  &field=p95_if(span.duration,is_transaction,equals,true)
  &field=failure_rate_if(is_transaction,equals,true)
  &field=performance_score(measurements.score.total)
  &field=count_unique(user)
  &field=sum_if(span.duration,is_transaction,equals,true)
  &query=(span.op:[ui.render,...] OR project.id:[2]) !span.op:http.server
  &statsPeriod=24h
  &sort=-sum_if(span.duration,is_transaction,equals,true)
  &referrer=api.insights.frontend.landing-table

Same request with only this field removed:

&field=failure_rate_if(is_transaction,equals,true)

returns 200

Actual Result

❌ Failing request (500)

GET /api/0/organizations/<org>/events/
  ?dataset=spans
  &field=is_starred_transaction
  &field=transaction
  &field=project
  &field=tpm()
  &field=p50_if(span.duration,is_transaction,equals,true)
  &field=p75_if(span.duration,is_transaction,equals,true)
  &field=p95_if(span.duration,is_transaction,equals,true)
  &field=failure_rate_if(is_transaction,equals,true)
  &field=performance_score(measurements.score.total)
  &field=count_unique(user)
  &field=sum_if(span.duration,is_transaction,equals,true)
  &query=(span.op:[ui.render,...] OR project.id:[2]) !span.op:http.server
  &statsPeriod=24h
  &sort=-sum_if(span.duration,is_transaction,equals,true)
  &referrer=api.insights.frontend.landing-table

Returns:

500 Internal Server Error (Sentry backend)

and Snuba logs:

POST /rpc/EndpointTraceItemTable/v1 ... 500 ... referrer=api.insights.frontend.landing-table

Product Area

Insights

Link

No response

DSN

No response

Version

25.11.0

Metadata

Metadata

Assignees

No one assigned

    Projects

    Status

    Waiting for: Product Owner

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions