From 10a6fe8bd8e2aaa0ecd87dfb59e1507568186d31 Mon Sep 17 00:00:00 2001 From: Pierce Roberts Date: Sat, 4 Jul 2026 03:18:23 -0600 Subject: [PATCH 1/5] Implement zip function in envelope fns --- relay-server/src/endpoints/minidump.rs | 9 ++++----- relay-server/src/endpoints/playstation.rs | 9 ++++----- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/relay-server/src/endpoints/minidump.rs b/relay-server/src/endpoints/minidump.rs index 38717dc76a4..bdfaa36d6b1 100644 --- a/relay-server/src/endpoints/minidump.rs +++ b/relay-server/src/endpoints/minidump.rs @@ -619,12 +619,11 @@ fn envelope( meta: RequestMeta, managed_err: Managed<(DataCategory, usize)>, ) -> Result>, BadStoreRequest> { - let event_id = common::event_id_from_items(&items) - .reject2(&items, &managed_err)? + let merged = Managed::zip(managed_err, items); + let event_id = common::event_id_from_items(&merged.as_ref().1) + .reject(&merged)? .unwrap_or_else(EventId::new); - let envelope = items.map(|items, records| { - managed_err.accept(|_| ()); // There will be an envelope with (DataCategory::Error, 1) now - records.modify_by(DataCategory::Error, 1); + let envelope = merged.map(|(_, items), _| { Box::new(Envelope::from_request(Some(event_id), meta).with_items(items)) }); Ok(envelope) diff --git a/relay-server/src/endpoints/playstation.rs b/relay-server/src/endpoints/playstation.rs index e296a3a1353..cd575ebaf1f 100644 --- a/relay-server/src/endpoints/playstation.rs +++ b/relay-server/src/endpoints/playstation.rs @@ -225,12 +225,11 @@ fn envelope( meta: RequestMeta, managed_err: Managed<(DataCategory, usize)>, ) -> Result>, BadStoreRequest> { - let event_id = common::event_id_from_items(&items) - .reject2(&items, &managed_err)? + let merged = Managed::zip(managed_err, items); + let event_id = common::event_id_from_items(&merged.as_ref().1) + .reject(&merged)? .unwrap_or_else(EventId::new); - let envelope = items.map(|items, records| { - managed_err.accept(|_| ()); // There will be an envelope with (DataCategory::Error, 1) now - records.modify_by(DataCategory::Error, 1); + let envelope = merged.map(|(_, items), _| { let envelope = Envelope::from_request(Some(event_id), meta) .with_items(items) .with_required_feature(Feature::PlaystationIngestion); From 6e2e99c8c94bbac748b4a4c514727cb7943a4698 Mon Sep 17 00:00:00 2001 From: Pierce Roberts Date: Mon, 6 Jul 2026 22:32:53 -0600 Subject: [PATCH 2/5] Add entry to changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 20d71d288ea..227a3ab95b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,6 +35,7 @@ - Use dedicated secret to sign upload URLs. ([#6132](https://github.com/getsentry/relay/pull/6132)) - Inline small attachments instead of uploading to objectstore. ([#6165](https://github.com/getsentry/relay/pull/6165)) - Retry 500 responses from objectstore. ([#6162](https://github.com/getsentry/relay/pull/6162)) +- Implement Managed::zip function. ([#6174](https://github.com/getsentry/relay/pull/6174)) ## 26.6.0 From 7dc7da47b7776358121ef5fd491c22d68ac1e46d Mon Sep 17 00:00:00 2001 From: Pierce Roberts Date: Thu, 23 Jul 2026 21:22:47 -0600 Subject: [PATCH 3/5] rm chng log entry. --- CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 227a3ab95b8..20d71d288ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,7 +35,6 @@ - Use dedicated secret to sign upload URLs. ([#6132](https://github.com/getsentry/relay/pull/6132)) - Inline small attachments instead of uploading to objectstore. ([#6165](https://github.com/getsentry/relay/pull/6165)) - Retry 500 responses from objectstore. ([#6162](https://github.com/getsentry/relay/pull/6162)) -- Implement Managed::zip function. ([#6174](https://github.com/getsentry/relay/pull/6174)) ## 26.6.0 From 34504d8c47195d19c4d65e996c4b584b31f13094 Mon Sep 17 00:00:00 2001 From: Pierce Roberts Date: Thu, 23 Jul 2026 21:26:47 -0600 Subject: [PATCH 4/5] simplify envelope fn. --- relay-server/src/endpoints/minidump.rs | 13 +++++-------- relay-server/src/endpoints/playstation.rs | 16 +++++----------- 2 files changed, 10 insertions(+), 19 deletions(-) diff --git a/relay-server/src/endpoints/minidump.rs b/relay-server/src/endpoints/minidump.rs index bdfaa36d6b1..215d4aee1dd 100644 --- a/relay-server/src/endpoints/minidump.rs +++ b/relay-server/src/endpoints/minidump.rs @@ -619,14 +619,11 @@ fn envelope( meta: RequestMeta, managed_err: Managed<(DataCategory, usize)>, ) -> Result>, BadStoreRequest> { - let merged = Managed::zip(managed_err, items); - let event_id = common::event_id_from_items(&merged.as_ref().1) - .reject(&merged)? - .unwrap_or_else(EventId::new); - let envelope = merged.map(|(_, items), _| { - Box::new(Envelope::from_request(Some(event_id), meta).with_items(items)) - }); - Ok(envelope) + Managed::zip(managed_err, items).try_map(|(_, items), _| { + let event_id = common::event_id_from_items(&items)?.unwrap_or_default(); + let envelope = Envelope::from_request(Some(event_id), meta).with_items(items); + Ok::<_, BadStoreRequest>(Box::new(envelope)) + }) } async fn handle( diff --git a/relay-server/src/endpoints/playstation.rs b/relay-server/src/endpoints/playstation.rs index cd575ebaf1f..7d31174e0b1 100644 --- a/relay-server/src/endpoints/playstation.rs +++ b/relay-server/src/endpoints/playstation.rs @@ -225,17 +225,11 @@ fn envelope( meta: RequestMeta, managed_err: Managed<(DataCategory, usize)>, ) -> Result>, BadStoreRequest> { - let merged = Managed::zip(managed_err, items); - let event_id = common::event_id_from_items(&merged.as_ref().1) - .reject(&merged)? - .unwrap_or_else(EventId::new); - let envelope = merged.map(|(_, items), _| { - let envelope = Envelope::from_request(Some(event_id), meta) - .with_items(items) - .with_required_feature(Feature::PlaystationIngestion); - Box::new(envelope) - }); - Ok(envelope) + Managed::zip(managed_err, items).try_map(|(_, items), _| { + let event_id = common::event_id_from_items(&items)?.unwrap_or_default(); + let envelope = Envelope::from_request(Some(event_id), meta).with_items(items); + Ok::<_, BadStoreRequest>(Box::new(envelope)) + }) } async fn handle( From a649ca70cb56d8e20cf88886dfcf43ab061ad71d Mon Sep 17 00:00:00 2001 From: Pierce Roberts Date: Thu, 23 Jul 2026 21:58:28 -0600 Subject: [PATCH 5/5] fix implementation of managed::zip --- relay-server/src/endpoints/minidump.rs | 4 ++-- relay-server/src/endpoints/playstation.rs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/relay-server/src/endpoints/minidump.rs b/relay-server/src/endpoints/minidump.rs index 215d4aee1dd..882e681ed10 100644 --- a/relay-server/src/endpoints/minidump.rs +++ b/relay-server/src/endpoints/minidump.rs @@ -619,11 +619,11 @@ fn envelope( meta: RequestMeta, managed_err: Managed<(DataCategory, usize)>, ) -> Result>, BadStoreRequest> { - Managed::zip(managed_err, items).try_map(|(_, items), _| { + Ok(Managed::zip(managed_err, items).try_map(|(_, items), _| { let event_id = common::event_id_from_items(&items)?.unwrap_or_default(); let envelope = Envelope::from_request(Some(event_id), meta).with_items(items); Ok::<_, BadStoreRequest>(Box::new(envelope)) - }) + })?) } async fn handle( diff --git a/relay-server/src/endpoints/playstation.rs b/relay-server/src/endpoints/playstation.rs index 7d31174e0b1..58fab5fba88 100644 --- a/relay-server/src/endpoints/playstation.rs +++ b/relay-server/src/endpoints/playstation.rs @@ -225,11 +225,11 @@ fn envelope( meta: RequestMeta, managed_err: Managed<(DataCategory, usize)>, ) -> Result>, BadStoreRequest> { - Managed::zip(managed_err, items).try_map(|(_, items), _| { + Ok(Managed::zip(managed_err, items).try_map(|(_, items), _| { let event_id = common::event_id_from_items(&items)?.unwrap_or_default(); let envelope = Envelope::from_request(Some(event_id), meta).with_items(items); Ok::<_, BadStoreRequest>(Box::new(envelope)) - }) + })?) } async fn handle(