- 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::InvalidURIError
inCleaner#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_message
instead ofException#message
when 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
,body
andhttpVersion
to the automatically captured request data for Rack apps | #700 - Add
Configuration#endpoints
for reading the notify and sessions endpoints andConfiguration#endpoints=
for setting them | #701 - Add
Configuration#redacted_keys
. This is likemeta_data_filters
but 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_paths
to replaceConfiguration#vendor_path
| #705
- In the next major release,
params
will only contain query string parameters. Currently it also contains the request body for form data requests, but this is deprecated in favour of the newbody
property - The
Configuration#set_endpoints
method is now deprecated in favour ofConfiguration#endpoints=
- The
Configuration#meta_data_filters
option is now deprecated in favour ofConfiguration#redacted_keys
- The
Configuration#vendor_path
option 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
ERROR
level | #681 - Add
on_breadcrumb
callbacks to replacebefore_breadcrumb_callbacks
| #686 - Add
context
attribute to configuration, which will be used as the default context for events. Using this option will disable automatic context setting | #687 | #688 - Add
Bugsnag#breadcrumbs
getter to fetch the current list of breadcrumbs | #689 - Add
time
(an ISO8601 string in UTC) todevice
metadata | #690 - Add
errors
toReport
/Event
containing an array ofError
objects. TheError
object containserror_class
,error_message
,stacktrace
andtype
(always "ruby") | #691 - Add
original_error
toReport
/Event
containing the original Exception instance | #692 - Add
request
toReport
/Event
containing HTTP request metadata | #693 - Add
add_metadata
andclear_metadata
toReport
/Event
| #694 - Add
set_user
toReport
/Event
| #695
- Avoid starting session delivery thread when the current release stage is not enabled | #677
before_breadcrumb_callbacks
have been deprecated in favour ofon_breadcrumb
callbacks 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_stages
configuration option has been deprecated in favour ofenabled_release_stages
- The
auto_capture_sessions
andtrack_sessions
configuration options have been deprecated in favour ofauto_track_sessions
- The
enabled_automatic_breadcrumb_types
configuration option has been deprecated in favour ofenabled_breadcrumb_types
- The
Report
class has been deprecated in favour of theEvent
class - The
Report#meta_data
attribute has been deprecated in favour ofEvent#metadata
- The
Breadcrumb#meta_data
attribute has been deprecated in favour ofBreadcrumb#metadata
- The
Breadcrumb#name
attribute has been deprecated in favour ofBreadcrumb#message
- The breadcrumb type constants in the
Bugsnag::Breadcrumbs
module has been deprecated in favour of the constants available in theBugsnag::BreadcrumbType
module For example,Bugsnag::Breadcrumbs::ERROR_BREADCRUMB_TYPE
is now available asBugsnag::BreadcrumbType::ERROR
- The
Report#exceptions
has been deprecated in favour of the newerrors
propertyReport#raw_exceptions
has been deprecated in favour of the neworiginal_error
property- Accessing request data via
Report#metadata
has been deprecated in favour of using the newrequest
property. Request data will be moved out of metadata in the next major version - The
Report#add_tab
andReport#remove_tab
methods have been deprecated in favour of the newadd_metadata
andclear_metadata
methods
- Fix possible
LocalJumpError
introduced 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
Method
or any object responding to#call
to be used as anon_error
callback or middleware | #662 | odlp
- Deliver when an error is raised in the block argument to
notify
| #660 | aki77 - Fix potential
NoMethodError
inBugsnag::Railtie
when usingrequire: false
in a Gemfile | #666
- Classify
ActionDispatch::Http::MimeNegotiation::InvalidType
as info severity level | #654
- Include
connection_id
in 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_queue
delivery by default | #626 -
Rescue now uses
thread_queue
delivery whenat_exit
hooks are enabled | #629
-
Set default Delayed Job error context to job class | #499 | Mike Stewart
-
The
BUGSNAG_RELEASE_STAGE
environment 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_type
configuration option should no longer be overwritten by Bugsnag and integrations should set this more consistently | #619
-
Add
on_error
callbacks 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_callbacks
have been deprecated in favour ofon_error
and will be removed in the next major release
-
Add configurable
discard_classes
option to allow filtering errors using either aString
orRegexp
matched 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
id
method, show the id and class in error reports | #531 | manojmj92
- The
ignore_classes
configuration option has been deprecated in favour ofdiscard_classes
.ignore_classes
will 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_path
to 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
:binds
key insql.active_record
ActiveSupport notifications. | #555 | #565 - Remove duplicate attribute declaration warning for
track_sessions
in 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#prepend
for Rake integration when on a new enough Ruby version to avoid infinite mutual recursion issues when something else monkey patchesRake::Task
. | #556 | #559 -
Handle
nil
values for thejob
block 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
endpoint
andsession_endpoint
configuration options are now deprecated but still supported. Theset_endpoints
method 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
notify
calls withnil
arguments 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_proxy
andhttps_proxy
environment variables | #424 | #437 | Bill Kirtley -
Add option to disable auto-configuration | #419
-
Add
warden.user.rack
data 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_root
Pathname
issue | #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_sessions
totrue
. 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
NameError
occurring 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_type
apps | #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_ignore
tonotify
| 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_to
association | #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_hash
is 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_filter
in 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 thejson
gem 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_queue
to: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
rake
is not set. #87 - Fix capistrano when
Rails
is 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, foo
in 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
commit
androllback
callbacks (these are usually swallowed silently by rails)
- Ensure sidekiq, mailman and rake hooks respect the
ignore_classes
setting - 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_notify
in 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
disable
method 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_exception
pattern)
- 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