Skip to content

New production errors, diagnosed on arrival.

When a new error issue opens in production, AI triage reads it and writes a summary onto it: what broke, the likely cause, the impact, and a next step.

Free plan. No credit card required.

app.squasher.ai/acme/checkout-api/issues/c4e1a92f

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

Review impact, context, and the next response action.

HighUnresolvedError

AI triage

checkout-api throws a TypeError in production when it reads amount from an undefined value: 1,339 events in 12 minutes. Likely cause: a price is read before it has loaded. Impact: high, the failing requests are checkouts. Next step: guard the read of amount and wait for the price.

Events
1,339
First seen
12 min ago
Last seen
1 min ago

Fingerprint

9f2c41e8a0b7d3c6

Issue

Status
Unresolved
Priority
High
Environment
production
Service
checkout-api
Assignee
Squasher AI

Workflow

BookmarkSubscribeRun AI triageCreate fix

Example issue. The triage run writes the AI triage summary.

From new issue to diagnosis.

A triage run is short. It starts on its own, reads one issue, writes one result, and ends.

  1. A new issue opens

    By default: in production, at level error or fatal, the first time it is seen. Up to 50 automatic runs per project a day.

  2. It reads the issue

    Title, message, type, level, environment, service, event count, and first and last seen. No stack traces, logs, or code.

  3. It writes a diagnosis

    A summary, the likely cause, impact and severity, an owner when the issue names one, evidence references, a next action, and a disposition.

  4. A person takes over

    The summary appears on the issue, with Squasher AI as assignee until you assign a teammate.

A diagnosis in fields, not a chat reply.

Every run returns the same structure, so a responder can scan it in seconds and a webhook can act on it.

  • Severity: critical, high, medium, low, or unknown.
  • Confidence of low, medium, or high on the cause, impact, and owner.
  • Disposition: remediate, needs_human, or no_safe_fix, with the reason.
  • Review notifications post it to Slack or a webhook.
AI triage docs

#triage

12

SquasherAPP2:07 PM

Squasher diagnosis: checkout-api throws a TypeError in production when it reads amount from an undefined value.

Impact (high): The failing requests are checkouts: 1,339 events in 12 minutes.

Owner: checkout-api (low confidence)

Cause: A price is read before it has loaded.

Evidence: Issue C4E1A92F: TypeError in checkout-api, production

Next: Guard the read of amount and wait for the price.

Disposition: needs_human

Example review notification.

What each step can read.

Automatic triage stays narrow on purpose. When you need logs, traces, or replays, ask the Squasher Agent.

The issue and its message

Automatic triage
Yes
Fix run
Yes
Squasher Agent
Yes

Stack traces

Automatic triage
No
Fix run
No
Squasher Agent
With a query

Logs

Automatic triage
No
Fix run
No
Squasher Agent
Yes

Traces

Automatic triage
No
Fix run
No
Squasher Agent
Yes

Session replays

Automatic triage
No
Fix run
No
Squasher Agent
Yes

Your repository's code

Automatic triage
No
Fix run
Yes
Squasher Agent
No

What it writes

Automatic triage
A summary on the issue
Fix run
A pull request
Squasher Agent
Issue and run changes you ask for

Checked against the product on September 24, 2026.

Fixes arrive as pull requests.

Fix pull requests are on Team and up. They need a connected GitHub repository, and Squasher never merges them.

  • Starts when triage says remediate and cites evidence, or when you press Create fix.
  • Works on a new branch in an isolated copy of your repository.
  • Reruns your test commands. The pull request opens only if they pass.
  • States in the pull request whether it added a regression test.
Auto-fix pull requests
github.com/acme/checkout/pull/482

[Squasher] Fix: TypeError — Cannot read properties of undefined (reading 'amount')

OpenOpened by the Squasher hosted agent · #482

Root cause

parseCurrency reads price.amount before the price loads on guest checkouts.

Fix

Return early while the price is pending, then read it.

Validation

bun test src/payments · 14 pass

A regression test was added for this fix.

  • src/payments/currency.ts+2 −1
  • src/payments/currency.test.ts+6

All checks have passedReview required

Example pull request

The Squasher Agent reads the rest.

Squasher Agent is the chat in your dashboard. It can read the logs, traces, and replays that automatic triage skips.

  • Queries logs and spans with SQL, and opens any trace by ID.
  • Searches session replays and lists suspect commits for an issue.
  • Takes attached logs, code, or config: up to 5 files, 40 KB each.
  • Updates issues and investigates an issue, incident, or monitor when you ask.
Chat with Squasher Agent
app.squasher.ai/acme/checkout-api/chat

Why did checkout start failing at 14:06?

Squasher

POST /api/checkout returns 500 since 14:06. The failing traces spend 1.9 s in pricing, then parseCurrency throws. The error logs on checkout-api share those trace IDs and read the same TypeError.

IssueUnresolvedTypeError: Cannot read properties of undefined (reading 'amount')
View issue c4e1a92f

Ask about your project…

Example conversation

Turn it on in three steps.

Triage needs issues to read. Send errors from production, check two switches, and connect GitHub if you want fixes.

  1. Send errors from production

    Install an SDK and set the environment. Triage runs on issues from production.

    import { init } from "@squasher-ai/node"; init({  apiKey: process.env.SQUASHER_API_KEY!,  projectId: process.env.SQUASHER_PROJECT_ID!,  environment: process.env.NODE_ENV,});
    Quickstart
  2. Check the two switches

    Automatically triage new signals and Generate fixes after triage are in project settings. Both start on.

  3. Connect GitHub for fixes

    Install the GitHub App and link a repository. Fix pull requests are on Team and up.

    GitHub integration
Paste into your coding agent
Install Squasher for this project. If Squasher skills or MCP are not configured in this agent environment, run `bash <(curl -fsSL https://squasher.ai/install.sh) --agents -y`. Then read https://skills.squasher.ai/squasher-onboard/SKILL.md, map every runnable app/service/worker/frontend/agent in the repo, choose the matching Squasher SDK, log drain, OTLP, or Agent SDK path, initialize with SQUASHER_API_KEY and SQUASHER_PROJECT_ID from environment variables, send one real verification event, and report the files changed plus the verification step. Do not hardcode or reveal real API keys.
bash <(curl -fsSL https://squasher.ai/install.sh) --agents -y

Questions, answered.

What is AI triage?

AI triage is a first look at a new production error, done for you. Squasher reads the issue and writes a summary onto it: what broke, the likely cause, the impact, and a next step. The first person to open it does not start from zero.

What starts a triage run?

By default, a new issue in production at level error or fatal. Each issue gets one automatic run, and a project gets up to 50 automatic runs a day. You can also start a run with Run AI triage on the issue page, or ask the Squasher Agent to investigate the issue.

What does automatic triage read?

The issue record: its title and message, error type, level, environment, service, event count, and first and last seen times. It does not read stack traces, logs, traces, session replays, or your code. Ask the Squasher Agent when you need those.

Is AI triage included on every plan?

Yes, AI triage is on every plan. Fix pull requests are on Team and up and need a connected GitHub repository.

Does Squasher change my code on its own?

It can open a pull request, but it never merges one. A fix run works on a new branch, reruns your test commands, and opens the pull request only if they pass. To stop automatic fix runs, turn off Generate fixes after triage in project settings.

How do I review a triage result?

Read the summary on the issue. Squasher AI stays the assignee until you assign a teammate. There is no approve button: you act on the issue, run triage again after the issue changes, or review the fix as a normal pull request.

What if a diagnosis has no evidence?

A diagnosis carries references to the evidence it used. When it has none, the review notification marks the evidence as incomplete, and Squasher does not start an automatic fix. A diagnosis can also say needs_human or no_safe_fix, with the reason.

Is AI triage the same as LLM observability?

No. AI triage diagnoses errors in your application. To watch your own AI features, such as prompts, model calls, and token use, see AI observability in the docs.

Priced by volume, never by seat.

Start free. Invite the whole team. AI triage is included on every plan.

Compare every plan

Free

For side projects, evals, and internal tools.

$0/ month

No card needed. No overage charges.

Start free
10 GB telemetry
5K replays
500 AI credits

Included

  • AI triage on new issues
  • 500 AI credits / month (an investigation uses 50)
  • 1 project

Pro

For small production apps that want one tool, not five.

$29/ month

Flat price. No per-seat fees.

Start on Pro
100 GB telemetry
10K replays
3K AI credits

Everything in Free, plus

  • 3,000 AI credits / month (an investigation uses 50)
  • 5 projects
  • 30 monitors with 30-second checks

Team

Most Popular

For product teams replacing separate error, replay, and status tools.

$99/ month

Flat price. No per-seat fees.

Start on Team
250 GB telemetry
40K replays
12K AI credits

Everything in Pro, plus

  • 12,000 AI credits / month (an investigation uses 50)
  • Unlimited projects
  • 25 status pages

Scale

For high-volume teams with security, procurement, and support needs.

$299/ month

Flat price. No per-seat fees.

Start on Scale
1 TB telemetry
150K replays
30K AI credits

Everything in Team, plus

  • 30,000 AI credits / month (an investigation uses 50)
  • 100 status pages
  • 250 monitors with 30-second checks

Need more volume, a security review, or custom terms? Get in touch.

Go squash some bugs.

Connect one service and send one real event. The crew takes it from there.

Free plan. No credit card required.