MIT licensed by Patrick Brisbin
Maintained by [email protected]
This version can be pinned in stack with:bugsnag-,4565

Bugsnag error reporter for Haskell

Hackage Stackage Nightly Stackage LTS

Catch exceptions in your Haskell code and report then to Bugsnag.


let settings = defaultSettings "A_BUGSNAG_API_KEY"

Manual Reporting

Data.Bugsnag.Exception is the type of actual exceptions included in the event reported to Bugsnag. Constructing it directly can be useful to attach the current source location as a stack frame.

  ex = defaultException
    { exception_errorClass = "Error"
    , exception_message = Just "message"
    , exception_stacktrace = [$(currentStackFrame) "myFunction"]

In order to treat it like an actual Haskell Exception (including to report it), wrap it in AsException:

notifyBugsnag settings $ AsException ex

Catching & Throwing

Catch any exceptions, notify, and re-throw:

myFunction `withException` notifyBugsnag @SomeException settings

Throw a manually-built exception:

throwIO $ AsException ex


Examples can be built locally with:

stack build --flag bugsnag:examples


We depend on bugsnag-hs to define the types for the full reporting API payload. Unfortunately, it exposes them from its own Network.Bugsnag module, which conflicts with ourselves.

To get around this, we re-export that whole module as Data.Bugsnag. If you are currently depending on bugsnag-hs and wish to use our package too, we recommend you only depend on us and use its types through the Data.Bugsnag re-export.




  • None


  • New module: Network.Bugsnag.MetaData

  • Adds some support for the annotated-exception package. updateEventFromOriginalException now catches either e or AnnotatedException e.

    • bugsnagExceptionFromSomeException now has special cases to handle AnnotatedException well.
    • Annotations of type CallStack and MetaData are included in the bugsnag report; other annotations are ignored.
  • Adds explicit support for StringException from the unliftio package.

    • bugsnagExceptionFromSomeException now has special cases to handle StringException well.


  • Support GHCs 9.0 and 9.2


First released version.

For CHANGELOG details prior to the package re-organization, see archive/