Register Sentry's ErrorSubscriber for Rails 7.0+ apps #1705
+66
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This implements the integration proposed in #1630.
After Rails 7.0, you'll be able to use the standardized
Rails.error.record
orRails.error.handle
interfaces to report exceptions to Sentry. Please check ActiveSupport::ErrorReporter for more information.Gotcha & Workaround
If an operation is wrapped inside
app.executor.wrap
, any exception raised will be captured by Rails' error reporter,even if it has been reported by either the SDK integration or user. So in some cases (e.g.
ActionCable
's channel actions), the same error could be reported twice.I worked around this by marking if an exception has been captured by the SDK. And if it has, we don't capture it with the
ErrorSubscriber
.(Dropping the original integration isn't an option because the contextual data may not be accessible from the error reporter)
Closes #1630