Skip to content

Features

Error tracking that turns noise into issues

Buglapse captures exceptions in the browser and in Node.js, groups them by fingerprint and shows the stack trace, breadcrumbs, release and user for every event, and for the issue as a whole the steps that usually lead to it. You see the bug, not ten thousand copies of it.

All Buglapse features

acme-web / WEB-42
WEB-42Unresolvedproductionweb@2.14.0 Assigned to AI agent

TypeError: Cannot read properties of undefined (reading 'id')

Events
1,284
Users
312
First seen
3 hr. ago
Last seen
2 min. ago
src/checkout/useCart.tsinapplyCouponline 48:31In app
46export function applyCoupon(cart: Cart, code: string) {
47 const coupon = cart.coupons.find(c => c.code === code)
48 return pricing.discount(cart.total, coupon.id)
49}
src/checkout/CheckoutForm.vueinonSubmitline 112:9In app
node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.jsincallWithErrorHandlingline 199:19

Error tracking

Everything you need to understand an error

  • One issue, not a flood

    Identical errors collapse into a single issue with counters for events and users, first and last seen. Each issue gets a short key such as WEB-42 that is easy to mention in a chat or a commit.

  • Readable stack traces

    Source maps turn minified frames back into your files, lines and columns, with the surrounding source lines. The chain of causes behind an error is kept too.

  • What happened before

    Clicks, navigation, requests and console output before the error in every event, and for the whole issue the common steps that lead to it. Plus release, environment, browser, OS, device and the user.

  • Resolve, ignore, merge

    Resolve an issue and it reopens on its own if the error comes back. Ignore noise with a condition, merge duplicates, and search with filters by release, browser or user.

How it works

From the first error to a triaged issue

  1. 1

    Add the SDK

    Drop in the script tag or install the browser or Node.js package and call init with the project DSN. Uncaught errors are reported from that moment.

  2. 2

    Report what you catch

    Errors your own code handles go to Buglapse with a single captureException call, together with the breadcrumbs collected so far.

  3. 3

    Triage in the dashboard

    Open the issue, read the decoded stack trace, check who was affected and in which release, then resolve it or hand it to a teammate or the AI agent.

checkout.ts
import { captureException } from '@buglapse/browser'

try {
  await submitOrder(cart)
}
catch (error) {
  captureException(error)
}

In detail

How grouping, scenarios and regressions work

Grouping by fingerprint

When an exception arrives, Buglapse builds a fingerprint from the error type and the frames of your own code, not from line numbers or third-party frames. When there is no usable stack, the message is used with its variable parts — numbers, ids, emails, dates — replaced by placeholders. Because source maps are applied before grouping, a new build does not split an old issue in two. On plans with custom grouping you can change the fingerprint template, for example to separate one error by environment.

Scenarios: the steps to the error

Buglapse compares the breadcrumbs of the latest events of an issue and finds up to three scenarios — chains of user actions (clicks, typing, navigation) that repeat before the error, with the system’s responses in between: requests and console output. Nothing is stitched together from different sessions: a scenario shows the share of events that followed it exactly and how many seconds before the error each step happened, and its example — an event with a replay or a trace — opens with those steps highlighted. Ids in URLs and messages are generalized, so order 123 and order 456 are the same step. Breadcrumbs from Sentry SDKs work too. When the events share no common path, the dashboard says so.

Regressions and spikes

A resolved issue that receives a new event is reopened as regressed and the team is alerted. An ignored issue stays quiet until its condition is met. When a spike eats into the monthly quota, Buglapse samples instead of cutting the stream off, and always keeps the first events of every new issue, so a new bug is never lost in the noise of an old one.

On each plan

Compare all plans
On each plan
Free Pro Team
Errors / month5,00025,000150,000
Errors & issues14 days30 days90 days
Custom grouping and issue mergingNot includedIncludedIncluded

FAQ

Common questions

Still have questions?

Drop us a line — we'll help with setup, plans or self-hosting.

Contact us

or email hello@buglapse.com

Which platforms does error tracking support?
Buglapse has its own SDKs for the browser and for Node.js. The browser SDK works with any framework, since it hooks into the page rather than into a specific library. Applications that already use an official Sentry SDK can report to Buglapse by changing the DSN.
How do I keep noisy errors out?
Inbound filters drop known noise before it is stored, the origin filter accepts events only from your own domains, and an issue can be ignored until it gets worse. Duplicate events fired in a row are deduplicated by the SDK.
How are errors counted?
Each stored exception counts toward the monthly error quota of the organization, shared by all its projects. The quota and the retention period for every plan are in the table above.

See also

AI Autofix

An AI agent that finds the root cause in your repository and opens a draft pull request.

Learn more: AI Autofix

Ready to see what's happening in your app?

Create a project on the free plan and send your first event in a couple of minutes.

Still have questions? Email hello@buglapse.com