# Runtime errors. Auto-fixed. Tested PRs.

The null check at 2am shouldn't need you.

# Runtime errors. Auto-fixed. Tested PRs.

bugstack captures runtime errors the moment they're thrown, writes the fix, runs it through your CI, and ships the PR. The whole loop, end-to-end, under 2 minutes.

[Start Free](https://dashboard.bugstack.ai/login) [See How It Works](/docs/how-it-works)

3 files max. 30 lines max. No dependency changes. That's the point.

Error captured to Fix generated to CI passed to PR ready

02 · The pain

## Every runtime error costs your team 30+ minutes. It shouldn't.

Here's what happens when a single production error fires today — and what it could look like instead.

### Without bugstack

1.  Error thrown in production 0:00
2.  Alert fires in monitoring tool +30 sec
3.  On-call engineer paged +2 min
4.  Engineer opens laptop, reads alert +5 min
5.  Diagnose: find stack trace, read context +10 min
6.  Write fix, push branch, open PR +8 min
7.  Wait for CI, get review, merge +7 min

Total 32 min

16× faster

### With bugstack

1.  Error thrown in production 0:00
2.  SDK captures the error +5 sec
3.  Stack trace analyzed, context pulled +10 sec
4.  Fix generated, PR opened +30 sec
5.  CI runs, tests pass +45 sec
6.  Auto-merged & deployed +30 sec
7.  No human needed —

Total <2 min

**Same error. Same stack. Different architecture.** The difference isn't speed — it's whether a human is in the middle of a loop that doesn't need them.

32 min → <2 min

03 · Capture

## One SDK. Two lines. Errors flow in with full context.

Install the SDK in your framework and production errors flow to bugstack the moment they're thrown — async, non-blocking, fingerprinted.

Terminal

$ npm install bugstack-sdk

✓ added 1 package in 2.1s

app.ts

1import { Bugstack } from 'bugstack-sdk'

2

3Bugstack.init({ apiKey: process.env.BUGSTACK\_API\_KEY })

RUNS ON YOUR STACK

[JavaScript](/for/javascript) [Python](/for/python) [Ruby](/for/ruby) [Go SDK](/for/go)

Express Next.js Flask FastAPI Django Rails stdlib

[More languages coming →](/contact)

### Async & non-blocking

The SDK captures errors on a background thread. Your API response times never change, and your users never wait on bugstack.

Main thread

GET /api/users 38 ms

Background

Error caught → bugstack

0 ms impact

### Fingerprinted automatically

Same error type + route + stack frame = one fingerprint. Duplicates within 24 hours increment a counter instead of re-running the pipeline.

### Rate-limited by default

A flood of errors won't flood bugstack. The SDK enforces sensible ceilings so a single broken deploy doesn't DoS your fix pipeline.

04 · Fix

40–60%

of your production bugs, fixed autonomously. And we're honest about the rest.

bugstack handles stack-trace-anchored runtime errors — roughly 40–60% of production bug volume in typical SaaS codebases. Logic errors, architectural problems, and business logic bugs stay with your engineers.

acme-app

▸ config/

▾ src/

▾ api/

users.tserroring file

billing.ts

▾ middleware/

rateLimit.ts

▾ utils/

validate.tsimported module

logger.ts

▾ models/

User.ts

▾ tests/

▾ api/

users.test.tstest file

billing.test.ts

3 / 247 files read · +2 / −1 lines changed · 0 new dependencies

bugstack scope 40–60%

Human scope

≤ 3 files touched Only the erroring file, its direct imports, and the test file

≤ 30 lines changed Small, reviewable diffs — never a rewrite

0 new dependencies No package additions, no version bumps, no supply-chain risk

### What bugstack fixes well

-   TypeError, null/undefined property access
-   Missing or wrong local imports
-   Unhandled async failures & promise rejections
-   Small guard & input-shape fixes
-   Local import/export/signature mismatches
-   Small Next.js route-handler errors
-   Python NoneType & attribute errors
-   Ruby NoMethodError on nil
-   Go nil pointer, index, map & type assertion panics

### Partially fixable

-   Logic errors that throw an exception (minimal correction possible, but domain intent may be needed)
-   Runtime type mismatches (parse-only validation, no TypeScript type checking)
-   External service call-site failures (can add a guard, can't fix the API itself)
-   Go concurrency panics (only when the stack trace points to a small local fix)

### What bugstack doesn't fix

-   Silent logic errors with no thrown exception
-   Architectural problems requiring redesign
-   Dependency or package upgrades
-   Database schema & migration issues
-   Build-only failures not captured by the SDK
-   Third-party/framework-only stack traces
-   Errors with bad or missing stack traces
-   Full agentic repo work (clone, shell, iterate)

Coverage estimate based on aggregate bug taxonomy data from Stack Overflow Developer Surveys, DORA research, and analysis across bugstack customer deployments. [Read the full methodology in our 2026 Incident Response Benchmark →](/blog/2026-incident-response-benchmark)

05 · Verify

## Your CI is the gatekeeper. Your confidence is the lever.

Every fix runs through your existing CI pipeline before anything merges. From there, you decide: manual review via PR, or auto-merge above a confidence threshold.

01

#### CI runs

build

test

typecheck

Attempt 1 failed → re-generate → Attempt 2 ✓

02

#### Confidence scored

85%

94% passes

94% > 85% threshold

03

#### Merge decision

Auto-merge ON

Security paths → always manual

### Your tests, unchanged

bugstack uses the CI pipeline you already run on every PR. No new infrastructure, no new test framework, no duplicate work.

### One retry, then stop

If CI fails, bugstack gets exactly one more attempt with the failure output as context. If the retry also fails, the PR stays open for a human — no infinite loops, no wasted CI minutes.

### Security paths always require a human

Fixes touching authentication, cryptography, or input sanitization can never auto-merge, regardless of confidence score. Most teams spend the first 30–60 days reviewing every fix and graduate at their own pace — the 3 AM page becomes a morning summary.

See bugstack run on your repo — live, in 20 minutes.

06 · The numbers

## When the loop closes, the numbers change.

Industry benchmarks for incident response look one way when a human is in the middle of the loop — and a very different way when that loop is closed by an agent.

MTTD 0 Industry: minutes to hours

MTTA 0 Industry: 5 min to hours

MTTR <2 min Industry: 1hr elite, 24hr+ low performers

Response rate 100% Industry: 33% of alerts acted on

#### Mean Time to Resolution (MTTR)

Low performers

\>1 week

Medium performers

<1 week

Elite performers

<1 day

bugstack

<2 min

These benchmarks apply to the class of errors defined in Section 04 — stack-trace-anchored, code-level errors that fit within ≤3 files and ≤30 lines. **bugstack doesn't change MTTR for incidents outside its scope; it eliminates it for incidents inside it.**

[Read the full 2026 Incident Response Benchmark → 14-min read · field guide for engineering leaders · methodology, citations, and the full analysis](/blog/2026-incident-response-benchmark)

Want to see these numbers on your codebase?

07 · Ready when you are

## Stop triaging. Start shipping.

See bugstack running on your stack in 20 minutes — or start the trial and connect GitHub yourself. Either way, your first tested PR lands today.

[Start 14-day trial](https://dashboard.bugstack.ai/login)

14-day free trial · Setup in minutes · Full feature access · Cancel anytime

Want the full analysis? [Read our 2026 Incident Response Benchmark →](/blog/2026-incident-response-benchmark)