- Use
ActiveSupport::Notifications.monotonic_subscribefor performance improvement on compatible Rails versions | #856
- Support for Ruby 4 | #849
-
Amend secondary instance URL to bugsnag.smartbear.com | #845
-
Guard against nil URI errors in synchronous delivery | #851
- Set default endpoints based on API key | #835
- Include the Warden scope in user metadata | #821 | javierjulio
- Add a block variant of
add_on_error| #824
- Fix Unicode encoding issues when using
Exception#detailed_message(Ruby 3.2+) | #817 - Fix compatibility with Ruby 3.4-dev | #815 | k0kubun
- Handle mailto links in
Cleaner#clean_url| #813
- Fix unhandled
URI::InvalidURIErrorinCleaner#clean_url| #811
- Fix deprecation warning from Sidekiq error handler | #796 | fukayatsu
- Fix Resque integration when failure backend is already
Resque::Failure::Multiple| #803 | sj26 - Redact URLs in automatic Rails breadcrumbs | #806
- Support Sidekiq v7 | #785 | stevenharman
- Improve performance of
Bugsnag.notify| #774 | sambostock
- Allow Gem paths to be stripped from file names in stacktraces when they contain a Regexp special character | #764
- Use
Exception#detailed_messageinstead ofException#messagewhen available | #761
- Add support for feature flags & experiments. For more information, please see https://docs.bugsnag.com/product/features-experiments | #758
- Avoid rescuing from errors in Active Record transaction callbacks in versions of Rails where they will be re-raised | #709 | apalmblad
- Fix metadata not being recorded when using Resque outside of Active Job | #710 | isnotajoke
- Allow overriding an event's unhandled flag | #698
- Add the ability to store metadata globally | #699
- Add
cookies,bodyandhttpVersionto the automatically captured request data for Rack apps | #700 - Add
Configuration#endpointsfor reading the notify and sessions endpoints andConfiguration#endpoints=for setting them | #701 - Add
Configuration#redacted_keys. This is likemeta_data_filtersbut matches strings with case-insensitive equality, rather than matching based on inclusion | #703 - Allow pausing and resuming sessions, giving more control over the stability score | #704
- Add
Configuration#vendor_pathsto replaceConfiguration#vendor_path| #705
- In the next major release,
paramswill only contain query string parameters. Currently it also contains the request body for form data requests, but this is deprecated in favour of the newbodyproperty - The
Configuration#set_endpointsmethod is now deprecated in favour ofConfiguration#endpoints= - The
Configuration#meta_data_filtersoption is now deprecated in favour ofConfiguration#redacted_keys - The
Configuration#vendor_pathoption is now deprecated in favour ofConfiguration#vendor_paths
- Sessions will now be delivered every 10 seconds, instead of every 30 seconds | #680
- Log errors that prevent delivery at
ERRORlevel | #681 - Add
on_breadcrumbcallbacks to replacebefore_breadcrumb_callbacks| #686 - Add
contextattribute to configuration, which will be used as the default context for events. Using this option will disable automatic context setting | #687 | #688 - Add
Bugsnag#breadcrumbsgetter to fetch the current list of breadcrumbs | #689 - Add
time(an ISO8601 string in UTC) todevicemetadata | #690 - Add
errorstoReport/Eventcontaining an array ofErrorobjects. TheErrorobject containserror_class,error_message,stacktraceandtype(always "ruby") | #691 - Add
original_errortoReport/Eventcontaining the original Exception instance | #692 - Add
requesttoReport/Eventcontaining HTTP request metadata | #693 - Add
add_metadataandclear_metadatatoReport/Event| #694 - Add
set_usertoReport/Event| #695
- Avoid starting session delivery thread when the current release stage is not enabled | #677
before_breadcrumb_callbackshave been deprecated in favour ofon_breadcrumbcallbacks and will be removed in the next major release- For consistency with Bugsnag notifiers for other languages, a number of methods have been deprecated in this release. The old options will be removed in the next major version | #676
- The
notify_release_stagesconfiguration option has been deprecated in favour ofenabled_release_stages - The
auto_capture_sessionsandtrack_sessionsconfiguration options have been deprecated in favour ofauto_track_sessions - The
enabled_automatic_breadcrumb_typesconfiguration option has been deprecated in favour ofenabled_breadcrumb_types - The
Reportclass has been deprecated in favour of theEventclass - The
Report#meta_dataattribute has been deprecated in favour ofEvent#metadata - The
Breadcrumb#meta_dataattribute has been deprecated in favour ofBreadcrumb#metadata - The
Breadcrumb#nameattribute has been deprecated in favour ofBreadcrumb#message - The breadcrumb type constants in the
Bugsnag::Breadcrumbsmodule has been deprecated in favour of the constants available in theBugsnag::BreadcrumbTypemodule For example,Bugsnag::Breadcrumbs::ERROR_BREADCRUMB_TYPEis now available asBugsnag::BreadcrumbType::ERROR
- The
Report#exceptionshas been deprecated in favour of the newerrorspropertyReport#raw_exceptionshas been deprecated in favour of the neworiginal_errorproperty- Accessing request data via
Report#metadatahas been deprecated in favour of using the newrequestproperty. Request data will be moved out of metadata in the next major version - The
Report#add_tabandReport#remove_tabmethods have been deprecated in favour of the newadd_metadataandclear_metadatamethods
- Fix possible
LocalJumpErrorintroduced in v6.22.0 | #675
-
Add support for tracking exceptions and capturing metadata in Active Job, when not using an existing integration | #670
-
Improve the report context when using Delayed Job or Resque as the Active Job queue adapter | #671
- Allow a
Methodor any object responding to#callto be used as anon_errorcallback or middleware | #662 | odlp
- Deliver when an error is raised in the block argument to
notify| #660 | aki77 - Fix potential
NoMethodErrorinBugsnag::Railtiewhen usingrequire: falsein a Gemfile | #666
- Classify
ActionDispatch::Http::MimeNegotiation::InvalidTypeas info severity level | #654
- Include
connection_idin ActiveRecord breadcrumb metadata on new versons of Rails | #655 - Avoid crash when Mongo 1.12 or earlier is used | #652 | isabanin
-
Exception messages will be truncated if they have a length greater than 3,072 | #636 | joshuapinter
-
Breadcrumb metadata can now contain any type | #648
-
Bugsnag should now report uncaught exceptions inside Bundler's 'friendly errors' | #634
-
Improve the display of breadrumbs in the Bugsnag app by including milliseconds in timestamps | #639
-
Sidekiq now uses
thread_queuedelivery by default | #626 -
Rescue now uses
thread_queuedelivery whenat_exithooks are enabled | #629
-
Set default Delayed Job error context to job class | #499 | Mike Stewart
-
The
BUGSNAG_RELEASE_STAGEenvironment variable can now be used to set the release stage. Previously this was only used in Rails applications | #613 -
Add support for runtime versions to Delayed Job, Mailman and Shoryuken integrations | #620
-
Reduce the size of the bundled gem | #571 | t-richards
-
Move serialization of Reports onto the background thread when using the thread_queue delivery method | #623
- The
app_typeconfiguration option should no longer be overwritten by Bugsnag and integrations should set this more consistently | #619
-
Add
on_errorcallbacks to replacebefore_notify_callbacks| #608 -
Improve performance when extracting code from files in stacktraces | #604
-
Reduce memory use when session tracking is disabled | #606
before_notify_callbackshave been deprecated in favour ofon_errorand will be removed in the next major release
-
Add configurable
discard_classesoption to allow filtering errors using either aStringorRegexpmatched against the error's class name | #597 -
The Breadcrumb name limit of 30 characters has been removed | #600
-
Improve performance of payload cleaning | #601
-
Improve performance when processing stacktraces | #602 | #603
-
If a custom object responds to
idmethod, show the id and class in error reports | #531 | manojmj92
- The
ignore_classesconfiguration option has been deprecated in favour ofdiscard_classes.ignore_classeswill be removed in the next major release
- Only call custom diagnostic data methods once | #586 | stoivo
- Guard against exceptions in to_s when cleaning objects | #591
- Add configurable
vendor_pathto configure which file paths are out of project stacktrace. | #544
- Resolve Ruby deprecation warning for keyword parameters | #580
- Handle change in capitalisation of framework version constant for Que in v1.x | #570 | #572 | tommeier
- Account for missing
:bindskey insql.active_recordActiveSupport notifications. | #555 | #565 - Remove duplicate attribute declaration warning for
track_sessionsin Configuration. | #510 | pocke
-
Add Ruby (and other framework) version strings to report and session payloads (device.runtimeVersions). | 560
-
Allow symbols in breadcrumb meta data. | #563 | directionless
-
Use
Module#prependfor Rake integration when on a new enough Ruby version to avoid infinite mutual recursion issues when something else monkey patchesRake::Task. | #556 | #559 -
Handle
nilvalues for thejobblock parameter for the Que error notifier. This occurs under some conditions such as database connection failures. | #545 | #548
- Fix issue with unnecessary meta_data being logged during breadcrumb validation. | #530
Note: this release alters the behaviour of the notifier to track sessions automatically.
-
Added Breadcrumbs. Breadcrumbs allow you to track events that may have led up to an error, such as handled errors, page redirects, or SQL queries. For info on what is tracked and how you can customize the data that breadcrumbs collect, see the Logging breadcrumbs section of our documentation. | #525
-
Bugsnag will now capture automatically created sessions by default. | #523
- The
endpointandsession_endpointconfiguration options are now deprecated but still supported. Theset_endpointsmethod should be used instead. Note that session tracking will be disabled if the notify endpoint is configured but the sessions endpoint is not - this is to avoid inadvertently sending session payloads to the wrong server.
-
Add SignalException to our default ignored classes | #479 | Toby Hsieh
-
Include Bugsnag frames, marked out of project | #497
- Ensure Sidekiq request data is always attached to notifications | #495
-
Ensure the correct error handler is used in newer versions of Sidekiq | #434
-
Rewrite Delayed::Job integration to fix potential issues and add more collected data | #492 | Simon Maynard
This release includes general performance improvements to payload trimming and filtering.
-
Capture unexpected app terminations automatically with
at_exit| #397 | Alex Moinet -
(DelayedJob) Improve max attempts handling - If the max attempts method returns nil it should fallback to
Delayed::Worker.max_attempts| #471 | Johnny Shields -
Increase payload size limit to 512kb (from 256kb) | #431 | Alex Moinet
- Apply metadata filters to HTTP referer fields | #460 | Renee Balmert
- (Notify) Handle
notifycalls withnilarguments correctly | #439
- (Rails) Log missing key warning after initialization completes, avoiding incorrectly logging a warning that the API key is missing | #444
-
Support HTTP proxy from
http_proxyandhttps_proxyenvironment variables | #424 | #437 | Bill Kirtley -
Add option to disable auto-configuration | #419
-
Add
warden.user.rackdata to default filters | #436
- Ensure logged messages include Bugsnag progname | #443
- Mark files in
.bundle/directory as not "in project" | #420 | Alex Moinet - Restore support for attaching
bugsnag_*metadata to exceptions without extendingBugsnag::Middleware::ExceptionMetaData| #426 | Jordan Raine
- Re-added apiKey to payload for compatibility | #418
- Fix Shoryuken integration &
project_rootPathnameissue | #416 | Sergei Maximov
- Fix failure to launch session polling task | #414
- Session tracking update:
- Adds support for tracking sessions and crash rate by setting the configuration option
configuration.auto_capture_sessionstotrue. Sessions can be manually created usingBugsnag.start_session. | #411
- Added support for DelayedJob custom job arguments | #359 | Calvin Hughes
- Allow skipping report generation using exception property | #402
- Added common exit exceptions - SystemExit and Interrupt - to default ignore classes. | #404
- Ensured Bugsnag class intialises before railties initialised | #396
- Use lazy load hooks to hook on ActionController::Base | Edouard-chin | #393
-
Fix type in Rack/Clearance integration | geofferymm | #392
-
Fix upgrade link to docs | duncanhewett | #390
Adds a warning for the change in usage for the notify() method from < 6.0 to
ease upgrading.
This notifier has been extensively re-written to make it easier to add new integrations and maintain in the future. This has led to several changes that are not backwards compatible. Please refer to the upgrading guide for more information.
-
General notifier re-write | #320 | #378 | #368 | #381 | #385 | #386
-
Added Upgrade guide | #370
-
Did-you-mean suggestions middleware | #372
-
Updated examples | #374
-
[DelayedJob] Fix
NameErroroccurring on erroring job notification | Eito Katagiri | #377 -
Fixed failing Rake/Java tests | #378
This release removes the default setting of ignoring classes of errors which are commonly associated with typos or server signals (SystemExit), instead recording them as info-level severity by default. This includes the following classes:
AbstractController::ActionNotFound,
ActionController::InvalidAuthenticityToken,
ActionController::ParameterMissing,
ActionController::RoutingError,
ActionController::UnknownAction,
ActionController::UnknownFormat,
ActionController::UnknownHttpMethod,
ActiveRecord::RecordNotFound,
CGI::Session::CookieStore::TamperedWithCookie,
Mongoid::Errors::DocumentNotFound,
SignalException,
SystemExit
- Add a one-time warning if the API key is not set
- Track whether errors were captured automatically and by which middleware
- [Rails] Fix failure to report when encountering objects which throw in
to_s#361
- [Sidekiq] Revert commit c7862ea because Sidekiq's logging middleware was removed in version 5.0.0 | Reuben Brown | #358
- [Resque] Fix error when creating a worker without a queue | Dean Galvin | #355
- [Resque] Fix leaking config into parent process | Martin Holman | #347
- Add new integration for Que | Sjoerd Andringa | #305
- [Sidekiq] Start Bugsnag after the logger in the middleware chain | Stephen Bussey | Akhil Naini | #326 | #350
- [Rake] Allow overriding
app_typeapps | #351 - Send the dyno name as the hostname when running on Heroku | #333
- [Delayed Job] Add additional job information such as arguments and number of attempts when available | Tim Diggins | Abraham Chan | Johnny Shields | #329 | #332 | #321
- Initialize Railtie after Bugsnag class | #343
- Alias
notify_or_ignoretonotify| Simon Maynard | #319
- Correctly hook on Action Controller | @rafaelfranca | #338
- Fix Bugsnag error message typo | @Adsidera | #344
- Default delivery method | @martin308 | #346
- Fix behavior to not override Rails 5
belongs_toassociation | #314
- Add Clearance support | Jonathan Rochkind | #313
- Add Shoruken support | Nigel Ramsay | #324
- Show the job class name for Sidekiq jobs, not the wrapper class name | Simon Maynard | #323
- Remove RoutingError from default ignore classes | #308
- Prefer BUGSNAG_RELEASE_STAGE over RAILS_ENV for release_stage | #298
- Apply grouping hash if method
bugsnag_grouping_hashis available on the object | #318 | #311 - Sidekiq improvements | #317 | #282 | #309 | #306
- Exception backtrace could be empty | #307
-
Ensure Rails 2 extensions are not loaded on newer versions | #303
-
Remove API key logging when Bugsnag is logging successfully | Julian Borrey | #299
- Add the name of the job class in context for Sidekiq and Resque errors | Johan Lundström | #293
- Add support for 'block syntax' on Bugsnag.notify calls | James Smith | #292
-
Fix Sidekiq app type being overwritten by Rails | Luiz Felipe G. Pereira | #286
-
Fix report uploads being rejected due to payload size | Ben Ibinson | Duncan Hewett | #288 | #290
-
Fix a possible crash when parsing a URL for RackRequest | Max Schubert | #289
-
Hide partial API key logged when loading Bugsnag | #283
This release includes general fixes as well as removing support for Ruby versions below 1.9.2.
-
Fix deployment notification failure in Capistrano | Simon Maynard | #275
-
Fix Bad Request errors generated by large payloads | Simon Maynard | #276
-
Fix warning from usage of
before_filterin Rails 5 | Scott Ringwelski | #267 -
Use Rails 5-style deep parameter filtering | fimmtiu | #256
Note: This is a backwards incompatible change, as filters containing
.are now parsed as nested instead of as a single key.
- Fix crash during heroku Rake task when an environment variable was empty | #261
- Various warning fixes | Taylor Fausak | #254
- Make the list of vendor paths configurable | Jean Boussier | #253
- Ensure timeout is set when configured
- Allow on premise installations to easily send deploy notifications
- Better handle errors in ActiveRecord transactions (thanks @arthurnn!)
- Remove multi_json from deploy
- Remove dependency on
multi_json, fall back to thejsongem for Ruby < 1.9
- Pull IP address from action_dispatch.remote_ip if available
- Fix for old rails 3.2 not having runner defined in the railtie
- Support for rails API
- Added support for ca_file for dealing with SSL issues
- Threadsafe ignore_classes
- Add app type
- Dont send cookies in their own tab
- Don't report SystemExit from
rails runner - Fix for stacktrace including custom bugsnag middleware
- Fix reporting of errors in rails-defined rake tasks
- Fix performance problems in cleanup_obj
- Automatically catch errors in
rails runner - Accept meta_data from any exception that deines
bugsnag_meta_data
- Delay forking the delivery thread
- Fix various threading issues during library initialization
- Exclude cookies and authorization headers by default
- Include rails exclusion list at the right time
- Make meta_data available to before_notify hooks
- Fix bug with rails param filters
- Fix encoding error in exception message
- Add rake task to create a Heroku deploy hook
- Fix configuration of http timeouts
- Fix configuration of http proxies
- Remove dependency on httparty
- Allow for symbols in rack env
- Fix Ruby 1.8 payload delivery bug (thanks @colin!)
- Collect and send snippets of source code to Bugsnag
- Fix resque integration
- Allow configuration of delivery method (from the default
:thread_queueto:synchronous) - Fix parameter filtering in rails 2
- Allow pathname in project root
- Collect and send HTTP headers to bugsnag to help debugging
- Allow access to the metadata object in before bugsnag notify callbacks
- Dont send the rack env by default
- Ensure filtering behaviour matches rails' for symbol filters
- Fix Rails 4 sessions appearing in Custom tab instead of its own (144)
- Allow filters to be regular expressions (thanks @tamird)
- Ensure filtering behavior matches rails' when importing filters from
Rails.configuration.filter_parameters
- Use ssl by default (Thanks @dkubb)
- Add additional ignored classes
- Check all chained exceptions on an error for ignored classes
- Fix occasional crash when reading rack params.
- Don't strip files with bugsnag in the name.
- Move Bugsnag notifications onto a background thread.
- Add job detail support to delayed_job integration (thanks dtaniwaki!)
- Load the env in the deploy rake task if there is no api key set
- Fix encoding issue when ensuring utf8 string is valid
- Fix capistrano v3 after 2.0.0
- BREAKING: capistrano integration requires explicit configuration to avoid loading rails env (15x faster to notify)
- Sidekiq 3 support
- java.lang.Throwable support for jruby
- Show non-serializable objects as '[Object]' instead of 'null'.
- Fix delayed job 2.x
- Fix rake support
- Fix missing notifications caused by invalid utf8
- Prepare 'severity' feature for release
- Fix capistrano when
rakeis not set. #87 - Fix capistrano when
Railsis not loaded. #85 - Various cleanup
- Proxy support in the bugsnag deploy notification rake task
- Capistrano3 support (for real)
- delayed_job support
- Support for per-notification api keys
- Capistrano3 support
- Allow
set :bugsnag_api_key, fooin capistrano
- Notify all exceptions in mailman and sidekiq
- Fix Rails2 middleware issue that stopped automatic metadata collection
- Move away from Jeweler
- Support for Exception#cause in ruby 2.1.0
- Allow users to configure app type
- Send severity of error to bugsnag
- Allo users to configure users in a structured way for search etc.
- Send hostname to Bugsnag
- Fix load order issue with Resque
- Deal with SSL properly for deploy notifications on ruby <2.0
- Notify about exceptions that occur in ActiveRecord
commitandrollbackcallbacks (these are usually swallowed silently by rails)
- Ensure sidekiq, mailman and rake hooks respect the
ignore_classessetting - Persist sidekiq and mailman meta-data through each job, so it can show up in manual Bugsnag.notify calls
- Add support for catching crashes in mailman apps
- Automatically enable Bugsnag's resque failure backend
- Add automatic rake integration for rails apps
- Deal with self-referential meta data correctly.
- Dont load the environment when performing a deploy with capistrano.
- Dont send rack.request.form_vars as it is a copy of form_hash and it may contain sensitive params.
- Fix rake block arguments for tasks that need them.
- Add proxy support for http requests to Bugsnag.
- Read the API key from the environment for Heroku users
- Add HTTP Referer to the request tab on rack apps
- Add ignore_user_agents to ignore certain user agents
- Change bugsnag middleware order to have Callbacks last
- Allow nil values to be sent to bugsnag
- Add truncated only when a field has been truncated
- Fix warden bug where user id is an array of ids
- Filter get params from URLs as well as meta_data
- Filter out meta-data keys containing the word 'secret' by default
- Fixed bug in rake integration with ruby 1.9 hash syntax
- Fix nil bug in windows backtraces
- Support windows-style paths in backtraces
- Fix bug with
before_bugsnag_notifyin Rails 2
- Notify will now build exceptions if a non-exception is passed in.
- Add support for Bugsnag rake integration
- By default we notify in all release stages now
- Return the notification in notify_or_ignore
- Add support for bugsnag meta data in exceptions.
- Clear the before bugsnag notify callbacks on sidekiq when a job is complete
- Allow lambda functions in config.ignore_classes
- Add stacktrace to internal bugsnag logging output
- Protect against metadata not being a hash when truncation takes place
- Add debug method, configuration option to help debug issues
- Better protection against bad unicode strings in metadata
- Protect against invalid unicode strings in metadata
- Fixed minor HTTParty dependency issue
- Send rails version with exceptions
- Protect against nil params object when errors happen in rack
- Added Rack HTTP method (GET, POST, etc) to request tab
- Fixed an issue with Warden userIds not being reported properly.
- Added
disablemethod to Bugsnag middleware, allows you to force-disable built-in Bugsnag middleware.
- Protect against rare exception-unwrapping infinite loop
(only in some exceptions using the
original_exceptionpattern)
- Fix for rails 2 request data extraction
- Deploy environment customization support (thanks coop)
- Ensure Bugsnag rails 3 middleware runs before initializers
- Show a warning if no release_stage is set when delivering exceptions
- Require resque plugin in a safer way
- Automatically set the release_stage in a safer way on rack/rails
- Re-add support for sending bugsnag notifications via resque
- Add rspec tests for rack middleware
- Fix a bug where before/after hooks were not being fired
- Added Bugsnag Middleware and callback, easier ways to add custom data to your exceptions
- Added automatic Sidekiq integration
- Added automatic Devise integration
- Comprehensive rspec tests
- Fix minor internal version number parsing bug
- Move Bugsnag rack middleware later in the middleware stack, fixes issue where development exception may not have been delivered
- Fix multi_json conflict with rails 3.1
- Make bugsnag_request_data public for easier EventMachine integration (thanks fblee)
- Fix multi_json gem dependency conflicts
- Capistrano deploy tracking support
- More reliable project_root detection for non-rails rack apps
- Support for sending test exceptions from rake (
rake bugsnag:test_exception)
- First public release