Search

Honeybadger provides powerful search features that let you easily find previously-occurred errors by type, location, meta-data and many other attributes. You can search for errors in a single project, or across all projects.

To search by error type and message, you can simply enter those into the search box. More advanced searches are accomplished via a special query language. We've provided query builder that lets you construct useful queries quickly and easily.

Enter a free-form text value, or one or more key:"value" tokens into the search box. Then press enter, or click on the magnifying glass button.

Tokens are separated by spaces. Single and double quotes are allowed.

Example query: john class:UserError -tag:wip -tag:pending component:"UsersController" action:'update'.

Because these search queries can become quite complex, we've included a query builder that allows you to construct them without much typing. The query builder automatically opens when you focus the search box.

Image of search box and search palette

Keyboard navigation

Use the following keyboard shortcuts in the search box as you edit your query. Additional context-sensitive options will be shown to you as you type.

Key Response
enter Submits form
tab Tabs to next token and selects value inside quotes
shift-tab Reverse-cycles selected token
mod backspace Deletes selected token
escape Closes hint

How tokens are combined

When combining different tokens, we use AND. So class:MyError assignee:myemail@domain.com searches for MyError instances that are assigned to me.

When combining multiple values for the same token, we use OR. For example, class:"Foo" class:"Bar" will return errors with class Foo OR Bar. There's one minor exception to this rule. Negative tokens, i.e. tokens preceded by - will be combined with AND.

Here are a few examples:

Example query Searches
class:"Foo" is:resolved Resolved errors with class Foo
-class:"Foo" is:resolved Resolved errors without class Foo
-class:"Foo" -is:resolved Unresolved errors with class Foo
class:"Foo" class:"Bar" is:resolved Resolved errors with class Foo OR class Bar
-class:"Foo" -class:"Bar" is:resolved Resolved errors without class Foo AND class Bar

Search by resolved, ignored, or paused

Search errors that are resolved, ignored, paused, or unresolved, not ignored, or unpaused.

Example query Searches
is:resolved Resolved errors
-is:resolved Unresolved errors
is:paused Paused errors
-is:paused Errors that aren't paused
is:ignored Ignored errors
-is:ignored Errors that aren't ignored


Image of resolved, ignored, and paused requests


Search by assignee

Errors can be assigned to team members, and results can be refined by assignment. Tokens can be combined to search errors assigned to multiple team members.

Example query Searches
assignee:"nobody" Unassigned errors
assignee:"anybody" Errors assigned to anyone
assignee:"jane@email.com" Errors assigned to a specific person
-assignee:"jane@email.com" Errors not assigned to a specific person

If other, choose a team member from the drop-down list or begin typing to trigger auto-complete.

Animation of assigned to menu.


Search by environment

Search errors by your environment:

Example query Searches
environment:"production" Errors occurring in production
-environment:"production" Errors not occurring in production
environment:"development" Errors occurring in development
-environment:"development" Errors not occurring in development
environment:"custom_environment" Errors occurring in any environment

If other, choose an environment from the drop-down list or begin typing to trigger auto-complete.

Animation of assigned to menu.


Search by last occurred

Search errors by their last occurrence. Your timezone is automatically determined but can be changed manually.

Example query Searches
occurred.after:"YYYY-MM-DD 0:00 UTC-7" Errors last seen after an exact date
occurred.before:"YYYY-MM-DD 0:00 UTC-7" Errors last seen before an exact date
occurred.after:"24 hours ago" Errors last seen after a human-friendly date
occurred.before:"24 hours ago" Errors last seen before a human-friendly date

You can enter human-friendly dates like today, this week, or July 1, for example: occurred.after:"this week".

Animation of last occurred query


Search by first seen

Search errors by when they were first seen. Your timezone is automatically determined but can be changed manually.

Example query Searches
created.after:"YYYY-MM-DD 0:00 UTC-7" Errors first seen after an exact date
created.before:"YYYY-MM-DD 0:00 UTC-7" Errors first seen before an exact date
created.after:"24 hours ago" Errors first seen after a human-friendly date
created.before:"24 hours ago" Errors first seen before a human-friendly date

You can enter human-friendly dates like today, this week, or July 1, for example: created.after:"September 12".


Search by error details

Search error by class, tag, and message.

Example query Searches
class:"PermissionDeniedError" Errors with a certain class
-class:"PermissionDeniedError" Errors without a certain class
tag:"tag_example" Errors with a tag
-tag:"tag_example" Errors Without a tag
message:"404" Errors with a message
-message:"404" Errors without message text

Class, tag, and message can be combined for specific results. For example, the query: message:"NameError" class:"TextOrganizer" tag:"priority" searches errors containing "NameError" from the TextOrganizer class with a "priority" tag.


Search by location

Search errors by component, action, URL, and host.

Example query Searches
component:"UsersController" Errors occurring in a controller/component
-component:"UsersController" Errors not occurring in a controller/component
action:"update" Errors occurring in an action
-action:"update" Errors not occurring in an action
request.url:"https://google.com" Errors occurring at a URL
-request.url:"https://google.com" Errors not occurring at a URL
request.host:"Example" Errors occurring on a server with this name
-request.host:"Example" Errors not occurring on a server with this name

Locations can be combined for more specific results. For example, the query: component:"UsersController" action:"update" request.url:"/docs" searches errors generated from the update action in the UsersController in the URL camera.


Search by request

Search errors by context, params, user agent, or session hashes.

Example query Searches
context.user.email:"bob@example.io" Errors with a matching context value
-context.user.name:"Bob" Errors without a matching context value
params.user.first_name:"Bob" Errors with a matching param value
params.old:"useless" Errors without a matching param value
request.user_agent:"Googlebot Errors caused by a user with this user agent
-request.user_agent:"Googlebot Errors not caused by a user with this user agent

Requests can be combined or nested for more specific results. 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 context, params, user agent, or session hashes use * as a wild-card, so a search for context.user.email:*@example.com would match any email address at example.com.


Sorting results

Error results can be sorted by date or error count.

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

Image of sort by date button

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

Image of sort by count button

Update all

Errors can be grouped and batch resolved or unresolved.

  1. Use the search to select which errors you'd like to bulk resolve.
  2. Click on "Update All" and choose an option from the drop-down.

Image of update all drop-down

Search through your errors by class or error message by typing your search term into the search box. Free-form text queries can also be combined with key:value tokens, for example: john class:UserError component:UsersController action:update.

Keyboard shortcuts

Quickly search errors using the following keyboard shortcuts. Note that these shortcuts immediately trigger a page load and will not preserve the state of the search builder.

Key Response
/ Focus search box
A or a Show resolved And Unresolved Errors
U or u Show Unresolved Errors
R or r Show Resolved Errors
M or m Show Errors Assigned to Me
T or t Show All Users' Errors
J or j Jump to another project
E or e Show errors in all environments *

*Use first character of environment name to filter by environment.