getsentry / getsentry/sentry-ruby
Cleanup configuration interface and make it fail gracefully
- Dominant language
- Ruby
- Stars
- 987
- Forks
- 541
- Avg merge
- 17h 40m
- Merged PRs (30d)
- 19
Description
### Issue Description
On server startup, when Sentry configuration may not be fully initialized, it seems that there are spots where `Sentry.configuration` may be `nil`.
This is very similar to other previous issues I've encountered around `Sentry.configuration` initialization: https://github.com/getsentry/sentry-ruby/issues/2782 https://github.com/getsentry/sentry-ruby/issues/2386
We should generally guard against non-initialized `Sentry.configuration` calls by ensuring that Sentry is initialized.
Currently, the method just exits early https://github.com/getsentry/sentry-ruby/blob/e219832b57c5aa32e41be4462dbe421c8c58bc67/sentry-ruby/lib/sentry-ruby.rb#L164C1-L167C8
Could it be changed such that if we are not initialized, we actually initialize Sentry? I feel this would prevent a whole class of `NoMethod no nil` errors I've personally run into.
### Reproduction Steps
During app boot (after a new deploy for example), we occasionally run into this type of error.
### Expected Behavior
Sentry does not cause a 500.
### Actual Behavior
Sentry causes a 500 with no backtrace.
### Ruby Version
3.4.4
### SDK Version
6.1.1
### Integration and Its Version
Rails 8.0.2
### Sentry Config
Default
Contributor guide
Assessment
This issue has not been assessed yet.