Stimulus Integration Guide

Source CodeIssues

Installation

First, install honeybadger-js:

# npm
npm add honeybadger-js --save

# yarn
yarn add honeybadger-js

Then, configure Stimulus to report errors to Honeybadger:

// In a Rails app this code typically resides in app/javascript/packs/application.js
// In a non-Rails app, usually src/application.js

// Import honeybadger-js
import { Application } from 'stimulus'
import * as Honeybadger from 'honeybadger-js'

// Configure honeybadger-js
Honeybadger.configure({
  apiKey: 'Your Honeybadger API key',
  environment: 'production',
  revision: 'git SHA/project version'
})

// Start Stimulus application
const application = Application.start()

// Set up error handler
application.handleError = (error, message, detail) => {
  console.warn(message, detail)
  Honeybadger.notify(error)
}

// Perform your other Stimulus setup here

Reporting errors

Honeybadger also reports all uncaught exceptions outside of Stimulus controllers using our window.onerror handler. To disable uncaught error reporting:

Honeybadger.configure({ onerror: false })

You can also manually notify Honeybadger of errors and other events in your application code:

try {
  // ...error producing code...
} catch(error) {
  Honeybadger.notify(error)
}

See the Reporting Errors How-to Guide for more info.

Identifying users

Honeybadger can track what users have encountered each error. To identify the current user in error reports, add a user identifier and/or email address with Honeybadger.context:

Honeybadger.setContext({
  user_id: 123,
  user_email: 'user@example.com'
})

Tracking deploys

As with vanilla JavaScript applications, you can notify Honeybadger when you've deployed a new build. Honeybadger will associate an error report with a specific revision number (matching the 'revision' field in your honeybadger-js configuration).

Here's a simple curl script to record a deployment:

HONEYBADGER_ENV="production" \
HONEYBADGER_REVISION="git SHA/project version" \
HONEYBADGER_API_KEY="project api key" \
  curl -g "https://api.honeybadger.io/v1/deploys?deploy[environment]=$HONEYBADGER_ENV&deploy[local_username]=$USER&deploy[revision]=$HONEYBADGER_REVISION&api_key=$HONEYBADGER_API_KEY"

Be sure that the same revision is also configured in the honeybadger-js library. Read more about deploy tracking in the API docs.

Tracking Deploys from Netlify

If you are deploying your site to Netlify, you can notify Honeybadger of deployments via Netlify's webhooks. Go to the Deploy notifications section of the Build & deploy tab for your site settings, and choose to add an Outgoing webhook notification. Choose Deploy succeeded as the event to listen for, and use this format for your URL:

https://api.honeybadger.io/v1/deploys/netlify?api_key=YOUR_HONEYBADGER_API_KEY_HERE

The environment that will be reported to Honeybadger defaults to the Netlify environment that was deployed, but you can override that with &environment=CUSTOM_ENV in the webhook URL, if you like.

Source map support

Honeybadger automatically translates your stack traces if you provide a source map along with your minified JavaScript files. Learn more about sending source maps to Honeybadger.