Ignoring Errors

Sometimes there are errors that you would rather not send to Honeybadger because they are not actionable or are handled internally. The honeybadger gem has multiple ways to ignore errors, depending on the situation:

Ignore by Class

Some exceptions aren’t very useful and are best ignored. By default, we ignore the following:

ActionController::RoutingError AbstractController::ActionNotFound ActionController::MethodNotAllowed ActionController::UnknownHttpMethod ActionController::NotImplemented ActionController::UnknownFormat ActionController::InvalidAuthenticityToken ActionController::InvalidCrossOriginRequest ActionDispatch::ParamsParser::ParseError ActionController::BadRequest ActionController::ParameterMissing ActiveRecord::RecordNotFound ActionController::UnknownAction Rack::QueryParser::ParameterTypeError Rack::QueryParser::InvalidParameterError CGI::Session::CookieStore::TamperedWithCookie Mongoid::Errors::DocumentNotFound Sinatra::NotFound

To ignore additional errors, use the exceptions.ignore configuration option. The gem will ignore any exceptions matching the string, regex or class that you add to exceptions.ignore.

exceptions: ignore: - 'MyError' - !ruby/regexp '/Ignored$/' - !ruby/class 'IgnoredError'

Subclasses of ignored classes will also be ignored, while strings and regexps are compared with the error class name only.

To override the default ignored exceptions, use the exceptions.ignore_only option instead:

exceptions: ignore_only: - 'MyError'

In this case only the MyError class will be ignored, and all the classes that were ignored by default will no longer be ignored.

Ignore by Browser

To ignore certain user agents, use the exceptions.ignored_user_agents config option. You can specify strings or regular expressions:

exceptions: ignored_user_agents: - 'Exact User Agent' - !ruby/regexp '/Bing/i'

Ignore by Environment

Honeybadger ignores errors in development and test environments by default. You can enable or disable error reporting for a specific environment by using the [environment name].report_data configuration option:

staging: report_data: false

You may alternatively set HONEYBADGER_REPORT_DATA=false in your app’s ENV.

We ask that you not enable error reporting for your test environment. It doesn’t do anyone any good. :)

Ignore Programmatically

To ignore errors with some custom logic, you can use the before_notify callback. This method lets you add a callback that will be run every time an exception is about to be reported to Honeybadger. If your callback calls the notice.halt! method, the exception won’t be reported:

# Here's how you might ignore exceptions based on their error message: Honeybadger.configure do |config| config.before_notify do |notice| notice.halt! if notice.error_message =~ /sensitive data/ end end

You can access any attribute on the notice argument by using the [] syntax.

Honeybadger.configure do |config| config.before_notify do |notice| notice.halt! if notice.exception.class < MyError && notice.params[:name] =~ "bob" && notice.context[:current_user_id] != 1 end end