Skip to content

Filter dynamic import errors from Sentry#8349

Merged
iHiD merged 1 commit into
ihid/replace-bugsnag-with-sentryfrom
ihid/filter-dynamic-import-errors
Feb 8, 2026
Merged

Filter dynamic import errors from Sentry#8349
iHiD merged 1 commit into
ihid/replace-bugsnag-with-sentryfrom
ihid/filter-dynamic-import-errors

Conversation

@iHiD
Copy link
Copy Markdown
Member

@iHiD iHiD commented Feb 8, 2026

Summary

  • Drops Failed to fetch dynamically imported module errors in the Sentry beforeSend hook
  • These are transient network issues (flaky connections, ad blockers, deploys invalidating cached chunk names) and are not actionable

Test plan

  • yarn test passes

🤖 Generated with Claude Code

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>
@iHiD iHiD requested a review from dem4ron as a code owner February 8, 2026 13:14
@iHiD iHiD merged commit 2dffbe6 into ihid/replace-bugsnag-with-sentry Feb 8, 2026
40 checks passed
@iHiD iHiD deleted the ihid/filter-dynamic-import-errors branch February 8, 2026 17:32
iHiD added a commit that referenced this pull request Feb 8, 2026
* 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>
iHiD added a commit that referenced this pull request Feb 8, 2026
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
iHiD added a commit that referenced this pull request Feb 8, 2026
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
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.

1 participant