Changelog
View SourceAll notable changes to this project will be documented in this file. See Keep a CHANGELOG for how to update this file. This project adheres to Semantic Versioning.
0.24.1 - 2025-07-02
Bug fix for OTP 28: Move regex constants to functions (#635)
0.24.0 - 2025-04-28
This release focuses on comprehensive Insights instrumentation enhancements, featuring automatic instrumentation for the most popular libraries, event batching, configurable sampling rates, and event context tracking for improved performance monitoring.
Added
- Added Insights instrumentation for detailed monitoring (#591)
- Added Insights event batching for optimized performance (#578)
- Added event sampling capabilities with configurable sample rates (#613, #608)
- Added
Honeybadger.EventContextfor enhanced context tracking (#606) - Added
event_filter/1function for custom event filtering (#602) - Added Request ID to Insights events and notices (#597)
- Added support for Ecto params with source whitelisting (#605)
Changed
- Revised event logging system for better performance (#609)
- Upgraded to microsecond precision for measurements (#603)
- Enhanced sanitizer functionality (#604)
0.23.0 - 2025-03-18
Added support for multiple HTTP client libraries (thanks @fastjames!)
0.22.1 - 2024-12-19
Bugfix for Elixir 1.17
0.22.0 - 2024-08-29
Added
- Add Honeybadger.event to send events to Insights
0.21.0 - 2023-11-02
switched from Logger.warn to Logger.warning
0.20.0 - 2023-05-05
- stop using logger metadata for breadcrumbs
- publish using github actions
[v0.19.0] - 2022-10-27
Added
- Add config option
exclude_errorsthat excludes errors from being sent to the Honeybadger servers.(#443)
[v0.18.1] - 2021-11-16
Fixed
- Avoid local function captures in Telemetry.attrach_many/4 (#400)
[v0.18.0] - 2021-09-28
Changed
- Update the minimum Elixir version to 1.10 (#390). Phoenix v1.5.11 causes a compilation error due to the new
mimedependency, which requires Elixir 1.10+.
Fixed
- Support latest telemetry dependency. (#397)
NB: Due to the upgrade of phoenix from v1.5.10 to v1.5.11 you must be on Elixir 1.10+
[v0.17.0] - 2021-08-16
Fixed
- fix callback spec arg type mismatch for handle_errors/2 from plugs (#384)
Changed
- Default
filter_argstofalse(#375)
Added
- Make notification for
Logger.errorconfigurable (#380, @yukster)
[v0.16.4] - 2021-07-13
Fixed
- Show arguments in stacktrace for
FunctionClauseErrorwhenfilter_args = false(#123, #373)
[v0.16.3] - 2021-07-05
Fixed
- Handle
extra_infowitherror_infoinHoneybadger.Backtrace.format_line(#369, @abstractcoder) - Prevent infinite loop with
use_logger: truewhen logging internal errors (#370)
[v0.16.2] - 2021-04-27
Fixed
- Encode notice message iodata before json serialize (#361)
[v0.16.1] - 2021-04-12
Fixed
- Call custom
filter_cgi_data/1inNoticeFilter(#353)
[v0.16.0] - 2021-02-22
Changed
- Send notifications on error-level logs
- Added
ignored_domainconfig with[:cowboy]as default
[v0.15.0] - 2020-09-24
Added
- New fingerprint option and config for
Honeybadger.notify/2. Thanks @brunozrk! (#305)
[v0.14.1] - 2020-07-06
Fixed
- Implement Jason.Encoder for RingBuffer (#294)
[v0.14.0] - 2020-03-12
Changed
- Breadcrumbs on by default
[v0.13.1] - 2020-02-06
Fixed
- Safely sanitize invalid binaries when encoding JSON for notices.
- Fixes for Elixir 1.10 release (#259)
[v0.13.0] - 2019-10-02
Added
- Introducing Breadcrumbs (#235)! After enabling in the config with
breadcrumbs_enabled: true, just callHoneybadger.add_breadcrumb/2anywhere in your code and if an error is reported in that process, the breadcrumb event will be passed along with the Notice.
Changed
- Renamed Notifier to
honeybadger-elixirand added language
[v0.12.1] - 2019-06-12
Fixed
- Call
Exception.blame/3after normalizing string errors, which prevents reporint all string messages as Erlang errors. (#225)
[v0.12.0] - 2019-05-30
Added
- Added
:revisionconfiguration option - Automatically call
Exception.blame/3to record additional information in the exception
[v0.11.0] - 2019-02-28
When upgrading to v0.11, users should be aware of a few important changes:
- You must be on Elixir 1.7+ and Erlang/OTP 21+
- Due to the deprecation of
System.stacktrace/0and the introduction of__STACKTRACE__, manually callingHoneybadger.notify/3will no longer include a stacktrace by default. See the issue discussion for more details - A stacktrace can be manually provided from within a rescue/catch block via the STACKTRACE macro, e.g.
Honeybadger.notify(SomeError, %{my: :context}, __STACKTRACE__)
Changed
- Switch from Erlang's
:error_loggerto an Elixir 1.7 and Erlang/OTP 21+Loggerbackend. This provides more consistent error reporting and enhanced integration with Logger metadata. - Stop automatically extracting stacktraces for calls to
Honeybadger.notice/3. The generated stacktrace was unreliably and frequently listed the Honeybadger reporter's internals, rather than application code. Manual calls tonotice/3should happen within arescue/catchblock and use the__STACKTRACE__macro.
Added
- Use
Logger.metadataas the basis for Honeybadger context in all logger generated notices
Fixed
- Fix Map.t() isn't a valid dialyzer type (#198)
- Try to convert remote IP to string in case of parsing failure
[v0.10.3] - 2018-07-02
Fixed
- Prevent crashes reporting
:badmatchwhen fetching the current stacktrace from a dead process. - Updated dependencies.
[v0.10.2] - 2018-07-02
Fixed
- Fix crashes caused by presence of structs in the context.
[v0.10.1] - 2018-06-27
Changed
- Handle fetching peer info when using Plug 1.6. This is implemented in a backward compatible manner, so versions < 1.6 will continue to work.
Fixed
- Fetch peer information for multiple plug versions
- Bump phoenix from 1.3.2 to 1.3.3
- Bump hackney from 1.12.1 to 1.13.0
[v0.10.0] - 2018-05-29
Changed
- Replace Poison with Jason for JSON encoding.
- Reduce the log level used for dev mode warning.
- Update dependenices.
Fixed
JSON encoding error.
- Send notifications even when the stacktrace isn't a list. Errors reported from the error logger can occasionally have a malformed stacktrace, which would raise another exception and prevent the notification from being sent.
[v0.9.0] - 2018-03-21
Changed
- Use lazy logging within
Honeybadger.Client, this allows compile time purging when the log level is set higher.
Fixed
- Fix a regression which was causing
Not Found (404)errors to be reported. - Fix an issue caused by hackney because of unread response bodies.
[v0.8.0] - 2018-01-17
Added
- Include function arity in notice backtraces. For example, the reported method
would be
notify/3instead ofnotify. - Include function arguments in notice backtraces. This is disabled by default,
and can be enabled by setting
filter_argstofalsein configuration.
Changed
- Allow
handle_errorsfromHoneybadger.Plugto be overridden.
Fixed
- Safely convert binary
:environment_namevalues to an atom. If the environment was specified via{:system, "HONEYBADGER_ENV"}and theHONEYBADGER_ENVvalue didn't already exist as an atom the app would fail to boot. - Ignore the absence of
HONEYBADGER_API_KEYwhen running in an excluded env
[v0.7.0] - 2017-11-07
Added
- Increases the logging around client activity (honeybadger-io/honeybadger-elixir#20).
- Explicitly allow sending notices with strings and maps. For example, it is now
possible to send a
RuntimeErrorby callingHoneybadger.notify("oops!"). - Added Honeybadger test mix task which can be invoked using
mix honeybadger.test
Changed
- Switch from
GenEventto implementinggen_eventbehaviour. - Remove
error_loggerbackend on application stop. - Use the latest exception's stacktrace whenever
notifyis called from atryexpression. - Namespace modules related to
FilterandNoticeFilter. This is largely an internal restructuring, but any custom filters that used theHoneybadger.FilterMixinwill need to specifyHoneybadger.Filter.Mixininstead. - Drops
HTTPoisonin favor of directly usingHackney, which gives us access to a connection pool. - Drops Meck and stubbing in favor of a local cowboy server (honeybadger-io/honeybadger-elixir#7).
- Starts a supervision tree with the client as a child.
- Report the controller and action name as component and action for phoenix apps
Fixed
- Filtering CGI data now respects the
filter_disable_urlsetting. All path related fields (ORIGINAL_FULLPATH,QUERY_STRING,PATH_INFO) are filtered now. - Get the environment directly from
Mix.envand always compare the environment names as atoms (honeybadger-io/honeybadger-elixir#94). - Changes notify from a macro to a function.
- Stops spawning new tasks for every error, instead relying on async handling in the client (honeybadger-io/honeybadger-elixir#88).
[0.6.3] - 2017-05-04
Changed
- Removes metrics reporting.
Fixed
- Loosens httpoison dependency.
- Misc. bug fixes.
[0.6.2] - 2016-10-24
Added
- ability to customize error names/messages,
Fixed
- stops plug error notifications from being sent twice
- minor typo fixes
- dependency updates
[0.6.1] - 2016-08-02
Fixed
- Reformatting the plug environment data sent to Honeybadger.
[0.6.0] - 2016-07-22
Fixed
- This release removes warnings for Elixir 1.3.0 and covers v1.4.0-dev as of
2016-07-22. There was also a switch to using
:nativeFromUnitsto match thePlug.Loggerusage of:erlang.convert_time_unit. This maintains consistency betweenHoneybadger.LoggerandPlug.Logger.
[0.5.0] - 2016-04-26
Added
- Honeybadger now collects successful response times, aggregates them and sends them to the Honeybadger API! You can see request metric data from the metrics tab on Honeybadger.io!
[0.4.0] - 2016-02-23
Changed
Due to the
Mix.env/0function always being set toprodfor dependencies and Mix being compiled out of applications by exrm, we now require you to explicitly declare yourenvironment_namefor every environment in yourconfig.exsfiles.Example: # config/dev.exs config :honeybadger, environment_name: :devDoing this will ensure you get accurate environment information for exceptions that happen at runtime as well as compile time. You can also set the
environment_namesetting aMIX_ENVenvironment variable.Example: $ MIX_ENV=prod mix phoenix.serverNote: setting
environment_namein your config files takes higher precedence than theMIX_ENVenvironment variable.
[0.3.1] - 2016-02-04
Fixed
- Fix a bug where notifications reported by the
error_loggerwere not sending the the context