Skip to content

exists_filter on coalesced attributes misses v1 spans stored under deprecated keys #7879

@buenaflor

Description

@buenaflor

Environment

  • Data shape: legacy v1 transaction spans where attributes are stored under deprecated keys
  • Query path: user-facing has: syntax in Sentry (exists_filter)

Steps to Reproduce

  1. Use v1 transaction span data where only deprecated keys are populated for a coalesced stable attribute (canonical key absent), e.g. http.response_content_length present and http.response.body.size missing.
  2. Run an existence check on the canonical key, e.g. has:http.response.body.size (RPC exists_filter).

Expected Result

exists_filter on the canonical key should match when the value exists under a mapped deprecated key (consistent with canonical value-filter behavior).

Actual Result

Canonical value comparison matches, but canonical exists_filter does not match rows where only deprecated-key storage exists (observed on v1 spans).

Dependents

Currently blocks migration of Sentry dashboards that need consistent filtering across both v1 and v2 spans.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions