Skip to content

feat(native): GA multi-exceptions#6241

Merged
jjbayer merged 10 commits into
masterfrom
feat/no-feature-flag
Jul 17, 2026
Merged

feat(native): GA multi-exceptions#6241
jjbayer merged 10 commits into
masterfrom
feat/no-feature-flag

Conversation

@jjbayer

@jjbayer jjbayer commented Jul 16, 2026

Copy link
Copy Markdown
Member

The sentry side is now ready to support multiple exceptions, see getsentry/sentry#119780

Playstation and Unreal still delete additional exceptions, just to reduce the blast radius.

ref: RELAY-256

@linear-code

linear-code Bot commented Jul 16, 2026

Copy link
Copy Markdown

RELAY-256

Comment on lines -105 to -107
/// Allow additional exceptions to accompany minidumps.
#[serde(rename = "projects:minidump-multi-exception")]
MinidumpMultiException,

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No need to add this to GRADUATED_FEATURE_FLAGS: The feature flag was only used for minidumps, for which the native placeholder was only ever written in processing relays.

@jjbayer
jjbayer marked this pull request as ready for review July 16, 2026 10:57
@jjbayer
jjbayer requested a review from a team as a code owner July 16, 2026 10:57
Comment thread relay-server/src/utils/native.rs
event: &mut Event,
placeholder: NativePlaceholder,
project_info: &ProjectInfo,
additional_exceptions: AdditionalExceptions,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This parameter exists to differentiate between the minidump and playstation cases?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I got test failures on the playstation endpoint and cursor complains about unreal. We might want to get rid of this parameter eventually but I didn't want to risk breaking any of those use cases for now (it could be that they implicitly rely on the deletion).

@jjbayer
jjbayer enabled auto-merge July 16, 2026 12:15

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit d6c4046. Configure here.

Comment thread relay-server/src/processing/errors/errors/unreal.rs Outdated
Comment on lines 77 to 82
.get_or_insert_with(Vec::new);

let allow_multiple_exceptions = project_info.has_feature(Feature::MinidumpMultiException);
if let Some(exc) = exceptions.first() {
relay_log::info!(
additional_exceptions = exceptions.len(),
native_exception_mechanism = placeholder.exception_type,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: The logic to delete additional exceptions for Playstation and Unreal events has been removed, contradicting the stated requirement in the pull request description to preserve this behavior.
Severity: MEDIUM

Suggested Fix

Re-introduce logic to clear additional exceptions for Playstation and Unreal platforms. This could be achieved by passing platform information to the write_native_placeholder function and conditionally calling exceptions.clear() based on the platform, or by adding the clearing logic directly within the specific processing paths for Playstation and Unreal.

Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent. Verify if this is a real issue. If it is, propose a fix; if not, explain why it's
not valid.

Location: relay-server/src/utils/native.rs#L65-L82

Potential issue: The code change removes the mechanism that previously controlled
whether additional exceptions are kept or deleted based on a project feature flag. The
function `write_native_placeholder` in `native.rs` no longer receives `project_info` and
the logic that checked for `Feature::MinidumpMultiException` before conditionally
calling `exceptions.clear()` has been removed. The pull request description explicitly
states that Playstation and Unreal platforms should continue to have additional
exceptions deleted. However, with this change, all platforms will now unconditionally
have multiple exceptions, which contradicts the intended behavior for Playstation and
Unreal.

Also affects:

  • relay-server/src/processing/errors/errors/playstation.rs:107~113
  • relay-server/src/processing/errors/errors/unreal.rs:102~114

Did we get this right? 👍 / 👎 to inform future reviews.

Comment thread relay-server/src/utils/native.rs
Comment thread relay-server/src/processing/errors/errors/unreal.rs
Comment thread relay-server/src/processing/errors/errors/playstation.rs
@jjbayer
jjbayer added this pull request to the merge queue Jul 17, 2026
Merged via the queue into master with commit 40bc3d2 Jul 17, 2026
36 checks passed
@jjbayer
jjbayer deleted the feat/no-feature-flag branch July 17, 2026 08:16
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.

2 participants