Skip to content

Conversation

@sentry
Copy link

@sentry sentry bot commented Jan 29, 2026

This PR fixes an issue where deleting preprod artifacts would fail with a SnubaRPCError: code: 500.

The root cause was that the Sentry code was attempting to delete preprod data from Snuba's EAP storage by filtering on the preprod_artifact_id attribute. However, Snuba's EAP storage configuration (eap_items.yaml) does not allow attribute-based deletions for the preprod item type, leading to the error: "No attribute-based deletions configured for item_type preprod".

The solution changes the deletion logic in sentry/preprod/helpers/deletion.py to filter by trace_id instead. The trace_id is a standard column in EAP storage and is deterministically generated from the preprod_artifact_id using uuid.uuid5(PREPROD_NAMESPACE, str(artifact_id)).hex in the write path. This ensures that the deletion request uses a supported filter, resolving the SnubaRPCError.

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.

@trevor-e trevor-e closed this Jan 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant