Search

 

You can easily search through your errors by class or error message. Just go to the project page and type your search term into the search box.

Honeybadger's search query syntax allows you to use tokens to find errors with specific properties. The following tokens are supported:

Syntax

Name Matches errors... Example
class With a certain class. class:RuntimeError
-class Without a certain class. -class:window.onerror
tag With a tag. tag:foo
-tag Without a tag. -tag:bar
component With a controller/component. component:UsersController
-component Without a controller/component. -component:PostController
action With an action. action:update
-action Without an action. -action:index
message With a message. message:"not unique"
-message Without a message. -message:denied
environment In an environment. environment:production
-environment Not in an environment. -environment:staging
hostname On a server with this name hostname:ip-123.ec2.internal
-hostname Not on a server with this name -hostname:ip-123.ec2.internal
file In the file with this name file:users_controller.rb
-file Not in the file with this name file:users_controller.rb
assignee Assigned to the user with the specified email address. assignee:somebody@example.com
occurred Reported during the specified date range. occurred:[NOW-1HOUR TO NOW]
created First reported during the specified date range. created:[NOW-1HOUR TO NOW]
is:(resolved|ignored|paused|assigned) With a state. is:resolved
-is:(resolved|ignored|paused|assigned) Without a state. -is:paused
(context|params|session).* With a matching value for a particular key in the context, params, or session hashes. context.user.email:foo@bar.com
request.user_agent Triggered by a user with a particular browser. request.user_agent:*MSIE*
request.url That happened at the specified URL. request.url:*camera*
request.remote_addr That occurred with requests with  the REMOTE_ADDR environment  variable. request.remote_addr:127.0.0.1
request.host That occurred on the server with  the HTTP_HOST environment variable. request.host:app.mydomain.com

Context, Params, and Session

What if you wanted to search for all errors caused by bob@example.com? You can do that and much more with our nested search syntax.

For example, searching for context.user.email:bob@example.com would match the following hash that was sent in the context with an error:

{ user: { email: "bob@example.com" } } 

When searching these hashes, separate the nested levels of the hash with a period. For example params.user.first_name:bob.

Searches against these three hashes use * as a wildcard, so a search for context.user.email:*@example.com would match any email address at example.com.

Dates

We use Solr syntax for the date search, which looks like this for relative dates/times:

occurred:[NOW-2HOUR TO NOW-1HOUR]
And it looks like this for absolute dates/times:
occurred:[2015-06-01T00:00:00Z TO 2015-06-07T23:59:59Z]
You can also mix the two (this searches from the beginning of the day one day ago to the specific time):
occurred:[2015-09-01T00:00:00Z TO 2015-09-01T00:00:00Z+1DAY]
Absolute times are always specified in UTC in the ISO8601 format.

Negative Searches

Searches for context, params, session, request, and occurred fields can be negated by prepending a "-" to the field name. For example, if you wanted to exclude any errors that were triggered by Googlebot, you could do a negative search like this:

-request.user_agent:*Googlebot*

Combining Searches

Multiple key:value tokens may be combined to refine your results, and may also be combined with an optional full-text query: john class:UserError -tag:wip -tag:pending component:UsersController action:update.

How combined tokens filter results

Positive tokens use OR to match results. An example of a match is a  search for class:Foo class:Bar ; the search results will include errors with class Foo OR Bar.

Negative tokens (which begin with a minus sign: -) always use AND, so that "-class:Foo -class:Bar" will return results which are not class Foo AND not class Bar.

Sorting

Sort by date

Sorting by "Last seen" lets you quickly jump to the newest or oldest exceptions that match your search result.

  1. Go to your project's error list page
  2. Click on the table header labeled "last seen"
  3. Click on it again to reverse the sort order

For example, here we're showing the newest unresolved errors assigned to Joshua Wood:

Sort by count

Sorting by "Times" lets you see which errors have happened the most or the fewest times.

  1. Go to your project's error index
  2. Click on the table header labeled "times"
  3. Click on it again to reverse the sort order

For example, here we're showing the most frequently-occurring unresolved errors assigned to Joshua Wood:

Filter by person

You can easily filter errors by assignee.

  1. Go to the error list page for a project
  2. Use the dropdown menu on the right side of the orange header to select a person to filter by.

Note: You can also filter "all assigned" and "all unassigned" exceptions.

Filter by environment

Honeybadger will never group errors from different environments together. If an error happens on staging, we'll record it as a staging error. If it happens in production, we'll record it as a production error.

You can filter errors by the environment they occurred in.

  1. Go to the error index page for your project
  2. Click on the "all environments" dropdown menu, near the search box.
  3. Select an environment, and the list will update.

Note: There is nothing magical about the standard environment names like production, development and test. Any environment name you use (demo, staging, etc..) will be handled appropriately.

Batch resolving

Honeybadger comes with a powerful way to resolve or unresolve groups of exceptions.

  • First, use the search and filters to select which items you'd like to bulk resolve.
  • Then, click on "More Actions" and choose one of the actions from the dropdown

The screenshot shows it best:

Filter by ignored

To show errors that you've flagged as ignored:

  1. Go to your project's error index page
  2. Click on the dropdown labeled Resolved or Unresolved
  3. Click on Show Ignored