Commit c1da565
Replace Bugsnag with Sentry (#8341)
* Replace Bugsnag with Sentry for error monitoring
Migrate error monitoring from Bugsnag to Sentry across both the Ruby
backend and JavaScript frontend. Uses Exercism.config.sentry_dsn for
backend config and env.json for frontend config, both production-only.
- Swap bugsnag gem for sentry-ruby + sentry-rails
- Swap @bugsnag/js + @bugsnag/plugin-react for @sentry/react
- Replace all Bugsnag.notify() calls with Sentry.capture_exception()
- Preserve Active Storage RecordNotFound filter via before_send
- Replace skip_bugsnag job pattern with retry_on + excluded_exceptions
- Update CSP connect policy for Sentry ingest domain
- Update GitHub labels from bot/bugsnag to bot/sentry
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Update Gemfile.lock and fix sentry test stubs
Run bundle install to remove bugsnag from lockfile and add sentry gems.
Fix Mocha stubbing errors in sentry_test.rb for cases where url is
never accessed.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Add x86_64-linux platform to Gemfile.lock
CI runs on Linux and the lockfile only had the darwin platform after
the gem swap.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Use separate Sentry DSN config keys for Rails and JS
- Backend: Exercism.config.sentry_rails_dsn
- Frontend: Exercism.config.sentry_js_dsn (piped through env.json)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Sample JS errors: 100% logged-in, 1% logged-out
Use beforeSend to always capture errors from logged-in users (with
user ID attached) and sample only 1% of errors from logged-out users
to avoid excessive noise.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Filter dynamic import errors from Sentry (#8349)
These "Failed to fetch dynamically imported module" TypeErrors are
caused by transient network issues, ad blockers, or deploys
invalidating cached chunk names. They are not actionable and just
create noise.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>1 parent e3d7c7d commit c1da565
64 files changed
Lines changed: 267 additions & 278 deletions
File tree
- .appends/.github
- .github
- app
- commands
- document
- exercise/approach
- github/issue
- git
- mailshot
- mentor/discussion
- metric
- payments
- stripe
- payment_intent
- payment
- subscription
- solution
- submission
- analysis
- representation
- test_run
- training_data/code_tags_sample
- webhooks
- controllers
- api
- spi
- webhooks
- helpers/view_components/track
- javascript
- components
- donations/stripe-form
- utils
- jobs
- mailers
- models
- submission
- config
- environments
- initializers
- lib
- test
- commands
- payments/stripe/payment_intent
- submission
- analysis
- representation
- webhooks
- controllers/api
- initializers
- jobs
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
| 6 | + | |
7 | 7 | | |
8 | | - | |
9 | | - | |
10 | | - | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
11 | 11 | | |
12 | | - | |
| 12 | + | |
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
172 | 172 | | |
173 | 173 | | |
174 | 174 | | |
175 | | - | |
| 175 | + | |
176 | 176 | | |
177 | | - | |
178 | | - | |
179 | | - | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
180 | 180 | | |
181 | | - | |
| 181 | + | |
182 | 182 | | |
183 | 183 | | |
184 | 184 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
30 | | - | |
| 30 | + | |
| 31 | + | |
31 | 32 | | |
32 | 33 | | |
33 | 34 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
147 | 147 | | |
148 | 148 | | |
149 | 149 | | |
150 | | - | |
151 | | - | |
152 | 150 | | |
153 | 151 | | |
154 | 152 | | |
| |||
230 | 228 | | |
231 | 229 | | |
232 | 230 | | |
| 231 | + | |
| 232 | + | |
233 | 233 | | |
234 | 234 | | |
235 | 235 | | |
| |||
243 | 243 | | |
244 | 244 | | |
245 | 245 | | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
246 | 252 | | |
247 | 253 | | |
248 | 254 | | |
249 | 255 | | |
250 | 256 | | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
251 | 263 | | |
252 | 264 | | |
253 | 265 | | |
| |||
354 | 366 | | |
355 | 367 | | |
356 | 368 | | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
357 | 373 | | |
358 | 374 | | |
359 | 375 | | |
| |||
551 | 567 | | |
552 | 568 | | |
553 | 569 | | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
554 | 576 | | |
555 | 577 | | |
556 | 578 | | |
| |||
634 | 656 | | |
635 | 657 | | |
636 | 658 | | |
637 | | - | |
| 659 | + | |
638 | 660 | | |
| 661 | + | |
639 | 662 | | |
640 | 663 | | |
641 | 664 | | |
| |||
647 | 670 | | |
648 | 671 | | |
649 | 672 | | |
650 | | - | |
651 | 673 | | |
652 | 674 | | |
653 | 675 | | |
| |||
701 | 723 | | |
702 | 724 | | |
703 | 725 | | |
| 726 | + | |
| 727 | + | |
704 | 728 | | |
705 | 729 | | |
706 | 730 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
35 | | - | |
| 35 | + | |
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
| |||
Lines changed: 2 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | | - | |
| 23 | + | |
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
31 | | - | |
| 31 | + | |
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | | - | |
| 17 | + | |
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
| 9 | + | |
10 | 10 | | |
11 | 11 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
| 9 | + | |
10 | 10 | | |
11 | 11 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
33 | | - | |
| 33 | + | |
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
| |||
0 commit comments